{"version":3,"file":"static/js/main.b505f00b.js","mappings":"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,IACA,IACA,IACA,IACA,KAEJ7C,MAAO,CACH,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ8C,KAAM,CACF,SACA,SACA,UACA,YACA,WACA,SACA,aAGR,cAAe,CACXF,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,KAEJ7C,MAAO,CACH,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ8C,KAAM,CACF,SACA,SACA,UACA,YACA,WACA,SACA,cAIZtoF,OAAQ,CACJ/yH,OAAQ,CACJm7M,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAM,CACF,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAGR,cAAe,CACXF,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJC,KAAM,CACF,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,cAIZC,SAAU,CACNt7M,OAAQ,CACJm7M,YAAa,CACT,KACA,KACA,KACA,MAEJC,OAAQ,CACJ,IACA,IACA,IACA,KAEJC,KAAM,CACF,cACA,cACA,cACA,gBAGR,cAAe,CACXF,YAAa,CACT,KACA,KACA,KACA,MAEJC,OAAQ,CACJ,IACA,IACA,IACA,KAEJC,KAAM,CACF,cACA,cACA,cACA,iBAIZE,WAAY,CACRv7M,OAAQ,CACJm7M,YAAa,CACTK,SAAU,WACV9wE,GAAI,KACJ,iBAAkB,KAClB+wE,KAAM,OACN9wE,GAAI,KACJ,iBAAkB,KAClB+wE,SAAU,iBACVC,WAAY,mBACZC,SAAU,iBACVC,OAAQ,YAEZT,OAAQ,CACJI,SAAU,KACV9wE,GAAI,IACJ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CA,EACD,IAIH,CACE,kBACA,QAGA,YACA,WACA,WACA,UACA,QACA,WACA,0BACA,wBACA,iBACA,SACA,OACA,WACA,aACA,OACA,cACA,WACA,WACA,WACA,SACA,WAEA,aACAoD,SAAQpD,IACRugR,EAAWvgR,GAAQ,IAAIsgR,EACrBtgR,EA/JY,GAiKZ,EACAA,EAAKq7B,cACL,MACA,GACA,EACD,IAKH,CACE,UAGA,WACA,QACA,YAKAj4B,SAAQpD,IACRugR,EAAWvgR,GAAQ,IAAIsgR,EACrBtgR,EAxLY,GA0LZ,EACAA,EACA,MACA,GACA,EACD,IAKH,CACE,UACA,YAKAoD,SAAQpD,IACRugR,EAAWvgR,GAAQ,IAAIsgR,EACrBtgR,EAvMuB,GAyMvB,EACAA,EACA,MACA,GACA,EACD,IAIH,CACE,OACA,OACA,OACA,QAKAoD,SAAQpD,IACRugR,EAAWvgR,GAAQ,IAAIsgR,EACrBtgR,EArNqB,GAuNrB,EACAA,EACA,MACA,GACA,EACD,IAIH,CAAC,UAAW,SAASoD,SAAQpD,IAC3BugR,EAAWvgR,GAAQ,IAAIsgR,EACrBtgR,EAtOY,GAwOZ,EACAA,EAAKq7B,cACL,MACA,GACA,EACD,IAGH,MAAMmlP,EAAW,iBACXx/O,EAAao0B,GAASA,EAAM,GAAGj0B,cAOrC,CACE,gBACA,qBACA,cACA,iBACA,aACA,YACA,YACA,sBACA,8BACA,gBACA,kBACA,oBACA,oBACA,eACA,YACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,aACA,+BACA,6BACA,cACA,iBACA,kBACA,iBACA,iBACA,aACA,aACA,eACA,oBACA,qBACA,cACA,WACA,iBACA,mBACA,kBACA,aACA,eACA,yBACA,0BACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,eACA,cACA,kBACA,iBACA,qBACA,sBACA,eACA,gBACA,eACA,eACA,YACA,gBACA,iBACA,gBACA,aACA,gBACA,gBACA,eACA,eACA,cACA,YAKA/9B,SAAQw3O,IACR,MAAM56O,EAAO46O,EAAczvN,QAAQq1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ED,8BAA+B,CAC9B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,gCAAiC,CAChC,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,GACA,IAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,yBAA0B,CACzB,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,qCAAsC,CACrC,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,yBAA0B,CACzB,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,KACA,MAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,KACA,MAED,iCAAkC,CACjC,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,IACA,KAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,KACA,MAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,KACA,MAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,KACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,IACA,KAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,8BAA+B,CAC9B,KACA,MAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,KACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,KACA,MAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,IACA,KAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,KACA,MAED,iCAAkC,CACjC,KACA,MAED,8BAA+B,CAC9B,KACA,MAED,yBAA0B,CACzB,KACA,MAED,8BAA+B,CAC9B,MACA,OAED,yBAA0B,CACzB,IACA,KAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,+BAAgC,CAC/B,MACA,MAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,KACA,MAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,iCAAkC,CACjC,MACA,OAED,iCAAkC,CACjC,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,QAGF,SAAS+lS,EAAoBC,GAC5B,IAAIC,EAAoB32Q,EAAEtvB,EAAKgmS,GAC9B,OAAOz/R,QAAQysB,UAAUspB,MAAK,KAC7B,IAAIp4C,EAAI,IAAI0F,MAAM,uBAAyBo8R,EAAM,KAEjD,MADA9hS,EAAEk7B,KAAO,mBACHl7B,CAAC,IAIT,IAAIkuD,EAAMpyD,EAAIgmS,GAAMvpS,EAAK21D,EAAI,GAC7B,OAAO6zO,EAAoB/hS,EAAEkuD,EAAI,IAAI9V,MAAK,IAClC2pP,EAAoBjoS,EAAEvB,EAAI,KAEnC,CACAspS,EAAoBvoS,KAAO,IAAOzC,OAAOyC,KAAKwC,GAC9C+lS,EAAoBtpS,GAAK,MACzBqK,EAAOyiO,QAAUw8D,mBC1wEjB,IAAI/lS,EAAM,CACT,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,mCAAoC,CACnC,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,KACA,MAED,wBAAyB,CACxB,KACA,MAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,IACA,KAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,uBAAwB,CACvB,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,KACA,MAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,KACA,MAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,KACA,MAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,IACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,GACA,IAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,IACA,KAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,GACA,IAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,KACA,MAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,wBAAyB,CACxB,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,MAED,2BAA4B,CAC3B,MACA,OAED,wBAAyB,CACxB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,IACA,KAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,IACA,KAED,uBAAwB,CACvB,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,u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AA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,IACA,KAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,IACA,KAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,KACA,MAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,kCAAmC,CAClC,KACA,MAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,IACA,KAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,2BAA4B,CAC3B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,MAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,GACA,IAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,KACA,MAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,gCAAiC,CAChC,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,2BAA4B,CAC3B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,KACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,KACA,MAED,gCAAiC,CAChC,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,IACA,KAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,gCAAiC,CAChC,MACA,OAED,gCAAiC,CAChC,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,kCAAmC,CAClC,KACA,MAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,+BAAgC,CAC/B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,KACA,MAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,KACA,MAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,+BAAgC,CAC/B,KACA,MAED,0BAA2B,CAC1B,MACA,OAED,gCAAiC,CAChC,MACA,OAED,gCAAiC,CAChC,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,IACA,KAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,2BAA4B,CAC3B,KACA,MAED,2BAA4B,CAC3B,MACA,OAED,0BAA2B,CAC1B,MACA,MAED,6BAA8B,CAC7B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,8BAA+B,CAC9B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,gCAAiC,CAChC,MACA,OAED,gCAAiC,CAChC,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,+BAAgC,CAC/B,KACA,MAED,kCAAmC,CAClC,MACA,OAED,kCAAmC,CAClC,MACA,OAED,+BAAgC,CAC/B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,QAGF,SAAS+lS,EAAoBC,GAC5B,IAAIC,EAAoB32Q,EAAEtvB,EAAKgmS,GAC9B,OAAOz/R,QAAQysB,UAAUspB,MAAK,KAC7B,IAAIp4C,EAAI,IAAI0F,MAAM,uBAAyBo8R,EAAM,KAEjD,MADA9hS,EAAEk7B,KAAO,mBACHl7B,CAAC,IAIT,IAAIkuD,EAAMpyD,EAAIgmS,GAAMvpS,EAAK21D,EAAI,GAC7B,OAAO6zO,EAAoB/hS,EAAEkuD,EAAI,IAAI9V,MAAK,IAClC2pP,EAAoBjoS,EAAEvB,EAAI,KAEnC,CACAspS,EAAoBvoS,KAAO,IAAOzC,OAAOyC,KAAKwC,GAC9C+lS,EAAoBtpS,GAAK,KACzBqK,EAAOyiO,QAAUw8D,mBC1wEjB,IAAI/lS,EAAM,CACT,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,2BAA4B,CAC3B,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,KACA,MAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,gCAAiC,CAChC,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,IACA,KAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,IACA,KAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,KACA,MAED,wBAAyB,CACxB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,KACA,MAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,KACA,MAED,qBAAsB,CACrB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,qBAAsB,CACrB,KACA,MAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,KACA,MAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,KACA,MAED,qBAAsB,CACrB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,IACA,KAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,KAED,uBAAwB,CACvB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,0BAA2B,CAC1B,IACA,KAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,wBAAyB,CACxB,MACA,OAED,qBAAsB,CACrB,KACA,MAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,KACA,MAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,yBAA0B,CACzB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,uBAAwB,CACvB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,wBAAyB,CACxB,IACA,KAED,wBAAyB,CACxB,MACA,OAED,qBAAsB,CACrB,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,0BAA2B,CAC1B,MACA,OAED,qBAAsB,CACrB,GACA,IAED,qBAAsB,CACrB,KACA,MAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,KACA,MAED,yBAA0B,CACzB,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,4BAA6B,CAC5B,MACA,OAED,yBAA0B,CACzB,MACA,OAED,oBAAqB,CACpB,MACA,OAED,oBAAqB,CACpB,MACA,QAGF,SAAS+lS,EAAoBC,GAC5B,IAAIC,EAAoB32Q,EAAEtvB,EAAKgmS,GAC9B,OAAOz/R,QAAQysB,UAAUspB,MAAK,KAC7B,IAAIp4C,EAAI,IAAI0F,MAAM,uBAAyBo8R,EAAM,KAEjD,MADA9hS,EAAEk7B,KAAO,mBACHl7B,CAAC,IAIT,IAAIkuD,EAAMpyD,EAAIgmS,GAAMvpS,EAAK21D,EAAI,GAC7B,OAAO6zO,EAAoB/hS,EAAEkuD,EAAI,IAAI9V,MAAK,IAClC2pP,EAAoBjoS,EAAEvB,EAAI,KAEnC,CACAspS,EAAoBvoS,KAAO,IAAOzC,OAAOyC,KAAKwC,GAC9C+lS,EAAoBtpS,GAAK,MACzBqK,EAAOyiO,QAAUw8D,8BC1wEjB,OAOC,WACA,aAEA,IAAIG,EAAS,CAAC,EAAEzqS,eAEhB,SAAS4b,IAGR,IAFA,IAAI6iG,EAAU,GAEL/+G,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAC1C,IAAIwhF,EAAMvhF,UAAUD,GAChBwhF,IACHu9B,EAAUisL,EAAYjsL,EAAS6qH,EAAWpoJ,IAE5C,CAEA,OAAOu9B,CACR,CAEA,SAAS6qH,EAAYpoJ,GACpB,GAAmB,kBAARA,GAAmC,kBAARA,EACrC,OAAOA,EAGR,GAAmB,kBAARA,EACV,MAAO,GAGR,GAAIp6E,MAAMC,QAAQm6E,GACjB,OAAOtlE,EAAW1b,MAAM,KAAMghF,GAG/B,GAAIA,EAAI36D,WAAajnB,OAAOS,UAAUwmB,WAAa26D,EAAI36D,SAASA,WAAW3W,SAAS,iBACnF,OAAOsxE,EAAI36D,WAGZ,IAAIk4F,EAAU,GAEd,IAAK,IAAI3+G,KAAOohF,EACXupN,EAAOxqS,KAAKihF,EAAKphF,IAAQohF,EAAIphF,KAChC2+G,EAAUisL,EAAYjsL,EAAS3+G,IAIjC,OAAO2+G,CACR,CAEA,SAASisL,EAAa7jS,EAAO8jS,GAC5B,OAAKA,EAID9jS,EACIA,EAAQ,IAAM8jS,EAGf9jS,EAAQ8jS,EAPP9jS,CAQT,CAEqCwE,EAAOyiO,SAC3ClyN,EAAWtQ,QAAUsQ,EACrBvQ,EAAOyiO,QAAUlyN,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIF,CArEA,iCCPc,SAASgvR,EAAgB52Q,GACtC,GAAIltB,MAAMC,QAAQitB,GAAM,OAAOA,CACjC,+CCFe,SAAS+G,EAAuBrH,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIowN,eAAe,6DAE3B,OAAOpwN,CACT,gDCLe,SAASiC,EAAgB+d,EAAUm3P,GAChD,KAAMn3P,aAAoBm3P,GACxB,MAAM,IAAIt3Q,UAAU,oCAExB,gFCHA,SAASu3Q,EAAkBrrS,EAAQgB,GACjC,IAAK,IAAIf,EAAI,EAAGA,EAAIe,EAAMb,OAAQF,IAAK,CACrC,IAAIusG,EAAaxrG,EAAMf,GACvBusG,EAAWvkF,WAAaukF,EAAWvkF,aAAc,EACjDukF,EAAWtkF,cAAe,EACtB,UAAWskF,IAAYA,EAAWz4E,UAAW,GACjDl0B,OAAOkoB,eAAe/nB,GAAQ,OAAcwsG,EAAWnsG,KAAMmsG,EAC/D,CACF,CACe,SAASp2E,EAAag1Q,EAAaE,EAAYC,GAM5D,OALID,GAAYD,EAAkBD,EAAY9qS,UAAWgrS,GACrDC,GAAaF,EAAkBD,EAAaG,GAChD1rS,OAAOkoB,eAAeqjR,EAAa,YAAa,CAC9Cr3Q,UAAU,IAELq3Q,CACT,gEChBe,SAAS91Q,EAAgBkD,EAAKn4B,EAAK+G,GAYhD,OAXA/G,GAAM,OAAcA,MACTm4B,EACT34B,OAAOkoB,eAAeyQ,EAAKn4B,EAAK,CAC9B+G,MAAOA,EACP6gB,YAAY,EACZC,cAAc,EACd6L,UAAU,IAGZyE,EAAIn4B,GAAO+G,EAENoxB,CACT,gCCde,SAAS54B,IAYtB,OAXAA,EAAWC,OAAOC,OAASD,OAAOC,OAAOC,OAAS,SAAUC,GAC1D,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GACvB,IAAK,IAAII,KAAOD,EACVP,OAAOS,UAAUC,eAAeC,KAAKJ,EAAQC,KAC/CL,EAAOK,GAAOD,EAAOC,GAG3B,CACA,OAAOL,CACT,EACOJ,EAASa,MAAMC,KAAMR,UAC9B,gFCZe,SAASq8G,EAAe3oF,EAAUC,GAC/CD,EAAStzB,UAAYT,OAAOwd,OAAOwW,EAAWvzB,WAC9CszB,EAAStzB,UAAU8c,YAAcwW,GACjC,OAAeA,EAAUC,EAC3B,gCCLe,SAAS23Q,IACtB,MAAM,IAAI13Q,UAAU,4IACtB,gDCFe,SAAS4qF,EAA8Bt+G,EAAQi8Q,GAC5D,GAAc,MAAVj8Q,EAAgB,MAAO,CAAC,EAC5B,IAAIJ,EAAS,CAAC,EACd,IAAK,IAAIK,KAAOD,EACd,GAAIP,OAAOS,UAAUC,eAAeC,KAAKJ,EAAQC,GAAM,CACrD,GAAIg8Q,EAASv2P,QAAQzlB,IAAQ,EAAG,SAChCL,EAAOK,GAAOD,EAAOC,EACvB,CAEF,OAAOL,CACT,gDCVe,SAASyrS,EAAgBr3Q,EAAGlX,GAKzC,OAJAuuR,EAAkB5rS,OAAOmd,eAAiBnd,OAAOmd,eAAejd,OAAS,SAAyBq0B,EAAGlX,GAEnG,OADAkX,EAAEnX,UAAYC,EACPkX,CACT,EACOq3Q,EAAgBr3Q,EAAGlX,EAC5B,gFCJe,SAASwuR,EAAc5oS,GACpC,IAAI7C,ECFS,SAAqB6C,EAAGm7B,GACrC,GAAI,WAAY,OAAQn7B,KAAOA,EAAG,OAAOA,EACzC,IAAIkG,EAAIlG,EAAE4xB,OAAOi3Q,aACjB,QAAI,IAAW3iS,EAAG,CAChB,IAAI/I,EAAI+I,EAAExI,KAAKsC,EAAGm7B,GAAK,WACvB,GAAI,WAAY,OAAQh+B,GAAI,OAAOA,EACnC,MAAM,IAAI6zB,UAAU,+CACtB,CACA,OAAQ,WAAamK,EAAI9E,OAASz2B,QAAQI,EAC5C,CDPU6oS,CAAY7oS,EAAG,UACvB,MAAO,WAAY,OAAQ7C,GAAKA,EAAIA,EAAI,EAC1C,gCELe,SAAS4+B,EAAQzK,GAG9B,OAAOyK,EAAU,mBAAqBnK,QAAU,iBAAmBA,OAAOC,SAAW,SAAUP,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBM,QAAUN,EAAEhX,cAAgBsX,QAAUN,IAAMM,OAAOp0B,UAAY,gBAAkB8zB,CACpH,EAAGyK,EAAQzK,EACb,gDCRe,SAASw3Q,EAAkBr3Q,EAAKgjF,IAClC,MAAPA,GAAeA,EAAMhjF,EAAIp0B,UAAQo3G,EAAMhjF,EAAIp0B,QAC/C,IAAK,IAAIF,EAAI,EAAG4rS,EAAO,IAAIxkS,MAAMkwG,GAAMt3G,EAAIs3G,EAAKt3G,IAAK4rS,EAAK5rS,GAAKs0B,EAAIt0B,GACnE,OAAO4rS,CACT,CCHe,SAASC,EAA4B13Q,EAAG23Q,GACrD,GAAK33Q,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,EAAiBA,EAAG23Q,GACtD,IAAIvuR,EAAI3d,OAAOS,UAAUwmB,SAAStmB,KAAK4zB,GAAG7b,MAAM,GAAI,GAEpD,MADU,WAANiF,GAAkB4W,EAAEhX,cAAaI,EAAI4W,EAAEhX,YAAYrZ,MAC7C,QAANyZ,GAAqB,QAANA,EAAoBnW,MAAM+C,KAAKgqB,GACxC,cAAN5W,GAAqB,2CAA2CoM,KAAKpM,GAAW,EAAiB4W,EAAG23Q,QAAxG,CALc,CAMhB,0FCCa,MAAAC,EAAwC,CACjD,CAACC,EAAAA,IACG,wDACJ,CAACC,EAAAA,IACG,iLACJ,CAACC,EAAAA,IACG,yRASMF,EAAAA,GACAD,EACFC,EAAAA,IAIEC,EAAAA,GACAF,EACFE,EAAAA,IAKEC,EAAAA,GACAH,EACFG,EAAAA,IAQN,MAAOC,UAAsCC,EAAAA,GAC/CjvR,WAAAA,CAAYkvR,EAAmBl9M,GAC3BG,MAAM+8M,EAAWl9M,GACjB1uF,KAAKqD,KAAO,gCAEZlE,OAAOmd,eAAetc,KAAM0rS,EAA8B9rS,YAI5D,SAAUisS,EACZD,GAEA,OAAO,IAAIF,EACPE,EACAN,EAAsCM,GAE9C,oEC1DO,MAAML,EAAsB,wBACtBC,EACT,2CACSC,EAA2B,6ECH3B,MAAAK,EAAY,CACrBC,iBAAkB,uBAClBC,eAAgB,qBAChBC,cAAe,oBACfC,gBAAiB,sBACjBC,uBAAwB,4BACxBC,YAAa,kBACbC,cAAe,oBACfC,cAAe,oBACfC,oBAAqB,yBACrBC,sBAAuB,2BACvBC,sBAAuB,2BACvBC,4BAA6B,oCAC7BC,iBAAkB,sBAClBC,mBAAoB,wBACpBC,mBAAoB,wBACpBC,4BAA6B,+BAC7BC,8BAA+B,iCAC/BC,8BAA+B,iCAC/BC,sBAAuB,2BACvBC,oBAAqB,yBACrBC,aAAc,mBACdC,aAAc,mBACdC,eAAgB,qBAChBC,eAAgB,qBAChBC,WAAY,iBACZC,qBAAsB,8QCnBb,MAAAC,EAAmB,CAI5BC,8BAA+B,0BAI/BC,oBAAqB,gBAIrBC,YAAa,IAIbC,aAAc,IAIdC,kBAAmB,OAInBC,yBAA0B,GAI1BC,SAAU,mBAGDC,EAAkB,CAC3BC,WAAY,uCACZC,uBAAwB,mCACxBC,eAAgB,QAGPC,EAAwB,CACjCC,iBAAkB,YAClBC,kBAAmB,oBACnBC,SAAU,WACVC,SAAU,YAKDC,EAAuB,CAChCC,aAAc,eACdC,eAAgB,iBAChBC,cAAe,iBAQNC,EAAoB,CAC7BC,IAAK,MACLC,KAAM,QAQGC,EAAqB,CAC9BC,UAAW,YACXC,sBAAuB,uBACvBC,cAAe,gBACfC,cAAe,gBACfC,cAAe,iBACfC,WAAY,iBACZC,aAAc,qBACdC,SAAU,UACVC,eAAgB,iBAChBC,OAAQ,SACRC,uBAAwB,qBACxBC,eAAgB,iBAChBC,eAAgB,wBAChBC,eAAgB,iBAChBC,iBAAkB,4BAKTC,EAAkB,CAC3BC,aAAc,oBACdC,WAAY,mBAQHC,EAAoB,CAC7BC,YAAa,cACbC,YAAa,mBAWJC,EAAQ,CACjBC,qBAAsB,IACtBC,kBAAmB,IACnBC,UAAW,IACXC,4BAA6B,IAC7BC,sBAAuB,IACvBC,mBAAoB,IACpBC,8BAA+B,GAC/B1wP,OAAQ,IACR2wP,YAAa,SAOLC,GAAZ,SAAYA,GACRA,EAAA,oBACAA,EAAA,cACAA,EAAA,gBACAA,EAAA,WACH,CALD,CAAYA,IAAAA,EAKX,KAMY,MAAAC,EAAoB,CAI7BC,QAAS,UAITC,MAAO,QAIPC,OAAQ,SAIRC,aAAc,eAIdC,UAAW,YAIXC,eAAgB,iBAIhBvsM,KAAM,QAKGwsM,EAAkD,CAC3DC,OAAQC,EAAAA,IAMCC,EAAiB,MAGjBC,EAAa,CACtBz2R,MAAO,oBACP02R,QAAS,uBAKAC,EAAU,UACVC,EAAa,EACbC,EAAgB,GAAH7pS,OAAM2pS,EAAO,SAE1BG,EAAoB,CAM7BC,QAAS,EAKTC,YAAa,EAMbC,2BAA4B,EAM5BC,aAAc,EAMdC,uBAAwB,EAKxBC,KAAM,GAKGC,EAA6C,CACtDP,EAAkBC,QAClBD,EAAkBM,KAClBN,EAAkBK,wBAGTG,EAAsB,yBACtBC,EAAoB,yGChPpB,MAAAC,EAAoB,CAC7B,CAACC,EAAAA,GAAiC,sCAClC,CAACC,EAAAA,GACG,wIASMD,EAAAA,EACAD,EAAkBC,EAAAA,GAGlBC,EAAAA,EACAF,EAAkBE,EAAAA,GAO1B,MAAOlH,UAAkB39R,MAqB3B0O,WAAAA,CAAYkvR,EAAoBl9M,EAAuBokN,GAInDjkN,MAHoBH,EAAY,GAAAvmF,OACvByjS,EAAS,MAAAzjS,OAAKumF,GACjBk9M,GAENzsS,OAAOmd,eAAetc,KAAM2rS,EAAU/rS,WAEtCI,KAAK4rS,UAAYA,GAAamH,EAAAA,GAAUhyD,aACxC/gP,KAAK0uF,aAAeA,GAAgBqkN,EAAAA,GAAUhyD,aAC9C/gP,KAAKgzS,SAAWF,GAAYC,EAAAA,GAAUhyD,aACtC/gP,KAAKqD,KAAO,YAGhB4vS,gBAAAA,CAAiBC,GACblzS,KAAKkzS,cAAgBA,GAIb,SAAAC,EACZ3vQ,EACA4vQ,GAEA,OAAO,IAAIzH,EACPnoQ,EACA4vQ,EAAiB,GAAAjrS,OACRwqS,EAAkBnvQ,GAAK,KAAAr7B,OAAIirS,GAC9BT,EAAkBnvQ,GAEhC,yDC1EO,MAAMovQ,EAAkB,mBAClBC,EAAoB,iFCYrBthN,cAAZ,SAAYA,GACRA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,eACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,gBACH,CAND,CAAYA,IAAAA,EAMX,WAYYj8D,EAmBT5Y,WAAAA,CACI22R,EACAC,EACAC,GAjBI,KAAAtnI,MAAkB16E,EAASiiN,KAmB/B,MAGMC,EACFJ,GAAiB/9Q,EAAOo+Q,6BAC5B1zS,KAAK2zS,cACDF,EAAiBG,gBANSC,MACpB,GAMV7zS,KAAK8zS,kBAAoBL,EAAiBK,oBAAqB,EAC/D9zS,KAAKisK,MACoC,kBAA9BwnI,EAAiBruM,SAClBquM,EAAiBruM,SACjB7T,EAASiiN,KACnBxzS,KAAKkzS,cACDO,EAAiBP,eAAiBH,EAAAA,GAAUhyD,aAChD/gP,KAAKszS,YAAcA,GAAeP,EAAAA,GAAUhyD,aAC5C/gP,KAAKuzS,eAAiBA,GAAkBR,EAAAA,GAAUhyD,aAG9C,iCAAO2yD,GACX,MAAO,CACHE,eAAgBA,OAGhBE,mBAAmB,EACnB1uM,SAAU7T,EAASiiN,MAOpBlgQ,KAAAA,CACHggQ,EACAC,EACAL,GAEA,OAAO,IAAI59Q,EACP,CACIs+Q,eAAgB5zS,KAAK2zS,cACrBG,kBAAmB9zS,KAAK8zS,kBACxB1uM,SAAUplG,KAAKisK,MACfinI,cAAeA,GAAiBlzS,KAAKkzS,eAEzCI,EACAC,GAOAl1M,UAAAA,CACJA,EACAl4F,GAEA,GACIA,EAAQi/F,SAAWplG,KAAKisK,QACtBjsK,KAAK8zS,mBAAqB3tS,EAAQ4tS,YAEpC,OAEJ,MAAM7uL,GAAY,IAAIngH,MAAOivS,cAGvBC,EAAY,IAAH9rS,OAAO+8G,EAAS,SAAA/8G,OAC3BhC,EAAQ+sS,eAAiBlzS,KAAKkzS,eAAiB,GACnD,KAEMl+Q,EAAM,GAAH7sB,OAAM8rS,EAAS,OAAA9rS,OAAMnI,KAAKszS,YAAW,KAAAnrS,OAC1CnI,KAAKuzS,eACT,OAAAprS,OAAMopF,EAASprF,EAAQi/F,UAAS,OAAAj9F,OAAMk2F,GAEtCr+F,KAAKk0S,gBACD/tS,EAAQi/F,SACRpwE,EACA7uB,EAAQ4tS,cAAe,GAO/BG,eAAAA,CACIjoI,EACApqH,EACAkyP,GAEI/zS,KAAK2zS,eACL3zS,KAAK2zS,cAAc1nI,EAAOpqH,EAASkyP,GAO3C5+Q,KAAAA,CAAM0sB,EAAiBqxP,GACnBlzS,KAAKq+F,WAAWx8C,EAAS,CACrBujD,SAAU7T,EAASvjF,MACnB+lS,aAAa,EACbb,cAAeA,GAAiBH,EAAAA,GAAUhyD,eAOlDozD,QAAAA,CAAStyP,EAAiBqxP,GACtBlzS,KAAKq+F,WAAWx8C,EAAS,CACrBujD,SAAU7T,EAASvjF,MACnB+lS,aAAa,EACbb,cAAeA,GAAiBH,EAAAA,GAAUhyD,eAOlDn8I,OAAAA,CAAQ/iD,EAAiBqxP,GACrBlzS,KAAKq+F,WAAWx8C,EAAS,CACrBujD,SAAU7T,EAASC,QACnBuiN,aAAa,EACbb,cAAeA,GAAiBH,EAAAA,GAAUhyD,eAOlDqzD,UAAAA,CAAWvyP,EAAiBqxP,GACxBlzS,KAAKq+F,WAAWx8C,EAAS,CACrBujD,SAAU7T,EAASC,QACnBuiN,aAAa,EACbb,cAAeA,GAAiBH,EAAAA,GAAUhyD,eAOlDr8I,IAAAA,CAAK7iD,EAAiBqxP,GAClBlzS,KAAKq+F,WAAWx8C,EAAS,CACrBujD,SAAU7T,EAASiiN,KACnBO,aAAa,EACbb,cAAeA,GAAiBH,EAAAA,GAAUhyD,eAOlDszD,OAAAA,CAAQxyP,EAAiBqxP,GACrBlzS,KAAKq+F,WAAWx8C,EAAS,CACrBujD,SAAU7T,EAASiiN,KACnBO,aAAa,EACbb,cAAeA,GAAiBH,EAAAA,GAAUhyD,eAOlDuzD,OAAAA,CAAQzyP,EAAiBqxP,GACrBlzS,KAAKq+F,WAAWx8C,EAAS,CACrBujD,SAAU7T,EAASgjN,QACnBR,aAAa,EACbb,cAAeA,GAAiBH,EAAAA,GAAUhyD,eAOlDyzD,UAAAA,CAAW3yP,EAAiBqxP,GACxBlzS,KAAKq+F,WAAWx8C,EAAS,CACrBujD,SAAU7T,EAASgjN,QACnBR,aAAa,EACbb,cAAeA,GAAiBH,EAAAA,GAAUhyD,eAOlDt8I,KAAAA,CAAM5iD,EAAiBqxP,GACnBlzS,KAAKq+F,WAAWx8C,EAAS,CACrBujD,SAAU7T,EAASiM,MACnBu2M,aAAa,EACbb,cAAeA,GAAiBH,EAAAA,GAAUhyD,eAOlD0zD,QAAAA,CAAS5yP,EAAiBqxP,GACtBlzS,KAAKq+F,WAAWx8C,EAAS,CACrBujD,SAAU7T,EAASiM,MACnBu2M,aAAa,EACbb,cAAeA,GAAiBH,EAAAA,GAAUhyD,eAOlD2zD,mBAAAA,GACI,OAAO10S,KAAK8zS,oBAAqB,yUCxQ5B,MAAAf,EAAY,CACrB4B,aAAc,UACdC,IAAK,iBAELC,aAAc,OAEdC,kBAAmB,4CACnBC,uBAAwB,4BACxBC,sBAAuB,SAEvBC,KAAM,OACNC,KAAM,SAENC,6BACI,sGAEJC,cAAe,iBACfC,yBAA0B,mBAE1BC,eAAgB,IAEhBC,WAAY,aAEZC,OAAQ,SAERC,cAAe,uCAEfC,aAAc,SACdC,cAAe,UACfC,qBAAsB,iBACtBC,YAAa,QAEbC,mBAAoB,OACpBC,gBAAiB,qBACjBC,cAAe,gBACfC,uBAAwB,WACxBC,2BAA4B,OAC5BC,sBAAuB,kDACvBC,sBAAuB,wBACvBC,YAAa,cACbt1D,aAAc,GACdu1D,eAAgB,MAChBC,cAAe,gBACfC,cAAe,IACfC,cAAe,4DACfC,aAAc,aACdC,aAAc,IACdC,gCAAiC,gBACjCC,kCAAmC,sBACnCC,oBAAqB,CACjB,4BACA,oBACA,sBACA,mBAEJC,oBAAqB,QACrBC,uBAAwB,WACxBC,mBAAoB,IACpBC,iBAAkB,oBAGTnuP,EAAa,CACtB+1O,QAAS,IACTqY,oBAAqB,IACrBC,kBAAmB,IACnBC,SAAU,IACVC,aAAc,IACdC,yBAA0B,IAC1BC,YAAa,IACbC,aAAc,IACdC,UAAW,IACXC,gBAAiB,IACjBC,kBAAmB,IACnBC,uBAAwB,IACxBC,aAAc,IACdC,yBAA0B,IAC1BC,oBAAqB,IACrBC,gBAAiB,IACjBC,uBAAwB,IACxBC,kBAAmB,KAIVzG,EAAsB,CAC/BqB,EAAU2C,aACV3C,EAAU4C,cACV5C,EAAU6C,sBAGDwC,EAAc,IAAI1G,EAAqBqB,EAAU8C,aAKjDr8M,EAAc,CACvB6+M,aAAc,eACdC,YAAa,cACbC,WAAY,kBACZC,gBAAiB,mBACjBC,mBAAoB,sBACpBC,gBAAiB,kBACjBC,kBAAmB,gBAOVC,EAAsB,CAC/BC,SAAU,UACVC,YAAa,cACbC,cAAe,eACf/Z,MAAO,QACPga,WAAY,oBACZC,eAAgB,iBAChBC,uBAAwB,0BAQfC,EAAwB,CACjCC,OAAQ,SACRC,cAAe,gBACfC,UAAW,aAQFC,EAAoB,CAC7BC,aAAc,eACdC,OAAQ,UAUCC,EAAc,CACvBC,MAAO,QACPC,eAAgB,iBAChBC,QAAS,UACTC,KAAM,OACNC,OAAQ,SACRC,WAAY,cAMHC,EAA4B,CACrCC,MAAO,QACPC,KAAM,QAMGC,EAAqB,CAC9BC,MAAO,QACPC,SAAU,YAQDC,EAAe,IACrBH,EACHI,UAAW,aAOFC,EAAY,CACrBC,eAAgB,WAChBC,yBAA0B,qBAC1BC,yBAA0B,qBAC1BC,8BAA+B,WAC/BC,oBAAqB,gBACrBC,kBAAmB,cACnBC,WAAY,+CAOHC,EAAmB,CAC5BC,mBAAoB,QACpBC,kBAAmB,OACnBC,mBAAoB,MACpBC,qBAAsB,WAQbC,EAAa,CACtBC,oBAAqB,IACrBC,sBAAuB,KAOdC,EAAiB,CAC1B5C,SAAU,UACVW,aAAc,cACdkC,8BAA+B,8BAC/BC,cAAe,gBAwBNC,EAAe,cACf9C,EAAc,cACd+C,EAAgB,IAEhBC,EAA+B,CACxCC,UAAW,qBACXC,qBAAsB,OAGbC,EAA0B,CACnCC,OAAQ,SACRC,MAAO,QACPC,QAAS,UACTC,iBAAkB,oBAKTC,EAAyB,CAClCC,eAAgB,EAChBC,qBAAsB,GACtBC,sBAAuB,IACvBC,kBAAmB,GACnBX,UAAW,mBACXY,mBAAoB,IACpBC,gBAAiB,IACjBC,cAAe,IACfC,eAAgB,IAChBC,cAAe,iBAMNC,EAAuB,CAChCC,OAAQ,SACRC,IAAK,MACLC,IAAK,YAQIC,EAAsB,CAE/BC,8BAA+B,GAE/BC,kCAAmC,KAEnCC,kBAAmB,aAEnBC,0BAA2B,qBAGlBC,EAAS,CAClB9P,oBAAqB,gBACrB+P,sBAAuB,mBAMdC,EAAyB,CAClCrvE,SAAU,WACVC,SAAU,YAQDqvE,EAAgB,CACzBC,YAAa,IACbC,eAAgB,KAOPC,EAAyB,CAClCC,sBAAuB,IACvBC,eAAgB,IAChBC,qBAAsB,IACtBC,KAAM,KAQGC,EAA0B,CACnCC,4BAA6B,IAC7BC,6BAA8B,IAC9BC,wBAAyB,IACzBC,oCAAqC,IACrCC,gCAAiC,KAQxBC,EAAe,CAExBpI,eAAgB,IAEhBqI,wBAAyB,IAEzBC,uBAAwB,IAExBC,4BAA6B,IAE7BC,sBAAuB,KAIdC,EAAoB,CAC7BC,IAAK,MACLC,IAAK,MACL/lB,IAAK,OAQIgmB,EAAmC,yGCpTnC,MAAAC,EAA2D,CACpEC,WAAYA,IACDz0S,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZiF,kBAAmBA,IACR9lS,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZgF,qBAAsBA,IACX7lS,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZ6T,mBAAoBA,IACT10S,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZqF,mBAAoBA,IACTlmS,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZ8T,eAAgBA,IACL,GAEXC,WAAYA,IACD,KAEXC,mBAAoBA,IACT,KAEXC,qBAAsBA,IACX,KAEXC,oBAAqBA,IACV,KAEX9O,sBAAuBA,IACZjmS,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZmU,WAAYA,IACDh1S,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZoU,cAAeA,IACJj1S,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZprP,OAAQA,IACGz1C,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZjrP,eAAgBA,IACL51C,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZuF,YAAaA,IACFpmS,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZkF,UAAWA,IACA/lS,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZqU,iBAAkBA,IACP,KAEXC,oBAAqBA,KACX,EAEVC,uBAAwBA,IACb,GAEXC,0BAA2BA,KAChB,EAEXC,2BAA4BA,KAClB,EAEVC,4BAA6BA,KACnB,EAEVC,cAAeA,KACX,MAAMtU,EAAAA,EAAAA,IACFL,EAAAA,GACH,EAEL4U,UAAWA,KACP,MAAMvU,EAAAA,EAAAA,IACFL,EAAAA,GACH,EAEL6U,UAAWA,KACD,EAEVC,iBAAkBA,KACR,EAEVC,iBAAkBA,IACP,KAEXC,yBAA0BA,KAChB,EAEVC,oBAAqBA,KACX,EAEVxgQ,iBAAkBA,KACd,MAAM4rP,EAAAA,EAAAA,IACFL,EAAAA,GACH,EAELkV,aAAcA,IACH/1S,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,KAIZmV,WAAYA,IACDh2S,QAAQ0sB,QACXw0Q,EAAAA,EAAAA,IACIL,EAAAA,gCCnNhB,MAAMoV,EAAmC,CACrCrtQ,SAAU4rQ,EACV0B,WAAY5P,EAAAA,GAAkBjsM,KAC9B87M,SAAU,GACVlrR,OAAQ,IAAIN,EAAAA,EAAO,CAAC,IAGXyrR,EACT5lS,EAAAA,cAAkCylS,GACVG,EAAYx2E,8BCU3By2E,EAMT,oCAAOC,CACHp/P,EACAq/P,GAEA,OAAQr/P,EAAQs/P,WACZ,KAAKrV,EAAAA,EAAUM,YACX,OAAO6E,EAAAA,GAAkBE,MAC7B,KAAKrF,EAAAA,EAAUa,iBACX,OAAOsE,EAAAA,GAAkBK,UAC7B,KAAKxF,EAAAA,EAAUS,oBACX,GACI1qP,EAAQu/P,kBAAoBpQ,EAAAA,GAAgBqQ,UAC5Cx/P,EAAQu/P,kBAAoBpQ,EAAAA,GAAgB/mL,MAE5C,OAAOgnL,EAAAA,GAAkBI,aAE7B,MACJ,KAAKvF,EAAAA,EAAUmB,sBACX,OAAOgE,EAAAA,GAAkBM,eAC7B,KAAKzF,EAAAA,EAAUsB,aACX,OAAO6D,EAAAA,GAAkBG,OAC7B,KAAKtF,EAAAA,EAAUc,mBACf,KAAKd,EAAAA,EAAUe,mBACX,GACIqU,GACAA,IAAkBjQ,EAAAA,GAAkBK,UAGpC,MAEJ,OAAOL,EAAAA,GAAkBjsM,KAC7B,KAAK8mM,EAAAA,EAAUyB,WACX,GACI2T,GACAA,IAAkBjQ,EAAAA,GAAkBG,OAGpC,MAEJ,OAAOH,EAAAA,GAAkBjsM,KAC7B,KAAK8mM,EAAAA,EAAUoB,oBACX,GACIgU,GACAA,IAAkBjQ,EAAAA,GAAkBM,eAGpC,MAEJ,OAAON,EAAAA,GAAkBjsM,KAC7B,KAAK8mM,EAAAA,EAAUO,cACf,KAAKP,EAAAA,EAAUQ,cACf,KAAKR,EAAAA,EAAUU,sBACf,KAAKV,EAAAA,EAAUW,sBACf,KAAKX,EAAAA,EAAU0B,qBACX,GACI3rP,EAAQu/P,kBAAoBpQ,EAAAA,GAAgBqQ,UAC5Cx/P,EAAQu/P,kBAAoBpQ,EAAAA,GAAgB/mL,MAC9C,CACE,GACIi3L,GACAA,IAAkBjQ,EAAAA,GAAkBE,OACpC+P,IAAkBjQ,EAAAA,GAAkBI,aAGpC,MAEJ,OAAOJ,EAAAA,GAAkBjsM,IAC5B,EAKT,OAAO,MCrFC,SAAAs8M,EACZC,EACAC,GAEA,GAAID,EAAO9hT,SAAW+hT,EAAO/hT,OACzB,OAAO,EAGX,MAAMgiT,EAAkB,IAAID,GAE5B,OAAOD,EAAO7pH,OAAOgqH,IACjB,MAAMC,EAAWF,EAAgB5pR,QACjC,SAAK6pR,IAAaC,KAKdD,EAASE,gBAAkBD,EAASC,eACpCF,EAASG,iBAAmBF,EAASE,gBACrCH,EAASpzE,WAAaqzE,EAASrzE,SAAQ,GAGnD,CC1DO,MAAMjrO,EAAO,oBACP4Y,EAAU,SC+BjB6lS,EAAyB,CAC3BC,mBAAoB,qBACpBC,MAAO,SAmBL1hO,EAAUA,CACZi1M,EACA7vN,KAEA,MAAM,KAAEx+D,EAAI,QAAE23D,GAAY6G,EAC1B,IAAIu8O,EAAgB1sB,EAAcsrB,WAElC,OAAQ35S,GACJ,KAAK46S,EAAuBC,mBACpBxsB,EAAcsrB,aAAe5P,EAAAA,GAAkBC,UAC/C+Q,EAAgBhR,EAAAA,GAAkBjsM,KAClCnmC,EAAQjpC,OAAO8uE,KACX,gFAGR,MACJ,KAAKo9M,EAAuBE,MACxB,MAAMngQ,EAAUgd,EAAQhd,QAClBjM,EAASorQ,EAAkBC,8BAC7Bp/P,EACA0zO,EAAcsrB,YAEdjrQ,IACAipB,EAAQjpC,OAAO8uE,KAAK,kBAADv8F,OACG05C,EAAQs/P,UAAS,wCAAAh5S,OAAuCotR,EAAcsrB,WAAU,QAAA14S,OAAOytC,IAE7GqsQ,EAAgBrsQ,GAEpB,MACJ,QACI,MAAM,IAAI5nC,MAAM,wBAAD7F,OAAyBjB,IAGhD,MAAMg7S,EAAkBrjP,EAAQtrB,SAAS+rQ,iBACzC,OACI2C,IAAkB1sB,EAAcsrB,YAC/BS,EAAsBY,EAAiB3sB,EAAcurB,UAQ/CmB,IAAkB1sB,EAAcsrB,WAEhC,IACAtrB,EACHsrB,WAAYoB,GAGfX,EAAsBY,EAAiB3sB,EAAcurB,UAS/CvrB,EANA,IACAA,EACHurB,SAAUoB,GAjBP,IACA3sB,EACHsrB,WAAYoB,EACZnB,SAAUoB,EAmBjB,WAMWC,EAAYjiT,GAGR,IAHS,SACzBqzC,EAAQ,SACRzrC,GACgB5H,GAChBkM,EAAAA,EAAAA,YAAU,KACNmnC,EAASitQ,yBAAyB5O,EAAAA,GAAWz2R,MAAOc,EAAQ,GAC7D,CAACs3B,IAEJ,MAAM3d,GAAS5oB,EAAAA,EAAAA,UAAQ,IACZumC,EAAS6sQ,YAAY9sQ,MAAMjwC,EAAK4Y,IACxC,CAACs3B,KAEGjwB,EAAO8+R,IAAeh8O,EAAAA,EAAAA,YAAWka,OAASh+E,GAAW,KAEjD,CACHu+S,WAAY5P,EAAAA,GAAkBC,QAC9B4P,SAAUvtQ,EAAS+rQ,sBAI3BlzS,EAAAA,EAAAA,YAAU,KACN,MAAMi2S,EAAa9uQ,EAASssQ,kBACvBh+P,IACGugQ,EAAY,CACRvjP,QAAS,CACLtrB,WACA3d,SACAisB,WAEJ36C,KAAM46S,EAAuBE,OAC/B,IAmCV,OAhCApsR,EAAO0+Q,QAAQ,qDAADnsS,OAC2Ck6S,IAGzD9uQ,EACK6rQ,aACA1+P,MAAK,KACFnN,EACKq9P,wBACA3uP,OAAM,KAEG,IAET6E,SAAQ,KAKLs7P,EAAY,CACRvjP,QAAS,CACLtrB,WACA3d,UAEJ1uB,KAAM46S,EAAuBC,oBAC/B,GACJ,IAET9/P,OAAM,KAEG,IAGP,KAECogQ,IACAzsR,EAAO0+Q,QAAQ,0CAADnsS,OACgCk6S,IAE9C9uQ,EAASusQ,oBAAoBuC,GAChC,CACJ,GACF,CAAC9uQ,EAAU3d,IAEd,MAAMqtF,EAA6B,CAC/B1vE,WACAstQ,WAAYv9R,EAAMu9R,WAClBC,SAAUx9R,EAAMw9R,SAChBlrR,UAGJ,OACIiqQ,EAAAA,cAACkhB,EAAY7iM,SAAQ,CAACx3G,MAAOu8G,GACxBn7G,EAGb,CCtMa,MAAAi4C,EAAUA,KAAoBquN,EAAAA,EAAAA,YAAW2yC,GCoBhD,SAAUuB,EAAmBC,GAC/B,MAAQzB,SAAU0B,EAAW,WAAE3B,GAAe9gQ,IAExC0iQ,GAAsBz1S,EAAAA,EAAAA,UAAQ,IAC5B6zS,IAAe5P,EAAAA,GAAkBC,SAxB7C,SACIsR,EACAD,GAEA,OACIA,IACCA,EAAaj0E,UACVi0E,EAAaX,eACbW,EAAaV,kBJ0CT,SACZW,EACAE,GAEA,OACIF,EAAY/iT,OAAS,IACpBijT,EAAmBd,eAChBc,EAAmBb,gBACnBa,EAAmBp0E,WAECk0E,EAAY3yS,QAAQ8yS,KAEpCD,EAAmBp0E,UACnBo0E,EAAmBp0E,SAAS5vM,gBACxBikR,EAAWr0E,SAAS5vM,kBAKxBgkR,EAAmBd,eACnBc,EAAmBd,cAAcljR,gBAC7BikR,EAAWf,cAAcljR,kBAK7BgkR,EAAmBb,gBACnBa,EAAmBb,eAAenjR,gBAC9BikR,EAAWd,eAAenjR,iBAQf,IAEhB,IAEf,CIhFiBkkR,CAAwBJ,EAAaD,GAG3CC,EAAY/iT,OAAS,CAChC,CAae80D,CAAgBiuP,EAAaD,IACrC,CAACC,EAAa3B,EAAY0B,IAE7B,OAAOE,CACX,eCxBoC9W,EAAAA,0FClBpC,IAAqlCkX,EAAUC,EAA3lCC,EAAQ,CAAC,eAAe,mCAAmC,WAAW,eAAe,WAAW,WAAW,mBAAmB,eAAe,WAAW,WAAW,2BAA2B,mBAAmB,WAAW,WAAW,eAAe,mCAAmC,WAAW,WAAW,WAAW,WAAW,mBAAmB,+CAA+C,OAAO,WAAW,WAAW,WAAW,OAAO,WAAW,WAAW,WAAW,2CAA2C,eAAe,WAAW,WAAW,+BAA+B,WAAW,WAAW,WAAW,WAAW,OAAO,+DAA+D,eAAe,WAAW,eAAe,WAAW,eAAe,WAAW,WAAW,2BAA2B,WAAW,WAAW,eAAe,eAAe,WAAW,WAAW,WAAW,WAAW,eAAe,eAAe,mBAAmB,WAAW,mBAAmB,mBAAmB,WAAW,WAAW,uBAAuB,4CAAsDF,EAA8IE,EAApID,EAA4I,IAAnH,SAASE,GAAW,OAAQA,GAAWH,EAAgB,KAAEA,EAAiB,QAAM,CAAEI,GAAYH,GAA6B,IAAII,EAAQ,SAASL,EAAUC,GAAmC,IAAIG,EAAUF,EAAtCF,GAAoB,GAAqC,QAAuBvgT,IAApB4gT,EAAgB,OAAc,CAA8fA,EAAgB,OAAE,SAASC,GAA+D,IAApD,IAAIC,EAAzhB,SAASC,GAA+J,IAApJ,IAA0KC,EAAUC,EAAlGC,EAAU/qR,OAAO4qR,GAAoB,QAAE,MAAM,IAAQI,EAAU,GAAWC,EAAU,EAAwBC,EAAU,EAAIJ,EAAUC,EAAkB,OAAEG,MAAcJ,IAAYD,EAAUI,EAAU,EAAc,GAAVJ,EAAeC,EAAUA,EAAUG,IAAY,GAAKD,GAAWhrR,OAAqB,aAAE,IAAK6qR,KAAa,EAAII,EAAU,IAAM,EAAKH,EAA/Y,oEAA4a,QAAEA,GAAY,OAAOE,CAAU,CAAsDT,CAAUG,GAAeS,EAAU,GAAWC,EAAU,EAAIC,EAAUV,EAAkB,OAAES,EAAUC,EAAUD,IAAaD,GAAW,KAAK,KAAKR,EAAsB,WAAES,GAAqB,SAAE,KAAc,OAAG,GAAM,OAAO9uE,mBAAmB6uE,EAAW,EAAEV,EAAgB,OAAE,CAAC,EAAEA,EAAgB,QAAE,CAAK,CAAC,IAAIa,EAAUb,EAAgB,OAAEL,GAAW,YAAmBvgT,IAAZyhT,GAAuBd,EAAUC,EAAgB,OAAED,GAAWC,EAAgB,OAAEL,GAAWI,GAAWA,EAAUc,EAAUd,CAAU,EAAM3gR,EAAQ,CAACx+B,KAAK,+XAAuaulB,EAAM,IAAIqpO,IAAM,SAASsxD,EAAaC,GAAW,CAAC,SAAS1lS,EAAgB2lS,GAAW,GAAG76R,EAAM65R,EAAQ,SAASgB,EAAUhB,EAAQ,SAAS,CAAC,GAAGA,EAAQ,UAAUA,EAAQ,QAA2E,OAAO75R,EAAM65R,EAAQ,QAAQgB,EAAUhB,EAAQ,QAAS,CAAC,IAAkYiB,EAA9XC,EAAUF,EAAUhB,EAAQ,QAAQ,KAAQgB,EAAUhB,EAAQ,QAAQ,GAAGmB,EAAUH,EAAUhB,EAAQ,QAAQkB,EAAUE,EAAU15Q,KAAKs4Q,EAAQ,SAAS5gR,EAAQ4gR,EAAQ,UAAUqB,GAAWD,EAAUpB,EAAQ,WAAWoB,EAAUpB,EAAQ,QAAQsB,EAAUF,EAAUpB,EAAQ,iBAAiBuB,iBAAiBvB,EAAQ,QAAQwB,EAA2kJ,SAAsBC,EAAUC,GAAW,IAAIC,EAAUF,EAAUzB,EAAQ,SAAS,IAAI2B,IAAYA,EAAU3B,EAAQ,SAAS,CAAC,GAAGA,EAAQ,UAAUA,EAAQ,QAAQ,OAAO,IAA6F,CAAC,IAAI4B,EAAU,IAAIt7S,IAAIo7S,GAAW,OAAOC,EAAU3B,EAAQ,UAAS,SAAS6B,EAAUC,GAAW,GAAG9B,EAAQ,UAAUA,EAAQ,QAAQ,OAAO8B,EAAU9B,EAAQ,SAAS6B,EAAU7B,EAAQ,QAAiD,IAAGA,EAAQ,UAAS,SAAS+B,GAAW,GAAG/B,EAAQ,UAAUA,EAAQ,QAAQ,OAAO4B,EAAU5B,EAAQ,SAAS+B,EAAU/B,EAAQ,SAAmG,GAAG,CAA7xKgC,CAAaZ,EAAUJ,EAAUhB,EAAQ,UAAoB,GAAGqB,GAAWC,EAAW,GAAGtB,EAAQ,UAAUA,EAAQ,QAAQ,CAA8U,MAAMiB,EAAU,CAAC,KAAO,EAAI,YAAcE,EAAU,QAAUH,EAAUhB,EAAQ,cAAe,GAAGA,EAAQ,UAAUA,EAAQ,QAAS,GAAIwB,GAAoO,IAAgC,IAA7BA,EAAUxB,EAAQ,UAAiBiC,GAAmiJ,IAAIpgT,MAAOm+S,EAAQ,WAAW,IAAtiJwB,EAAUxB,EAAQ,UAAW,GAAGA,EAAQ,SAASA,EAAQ,OAAOiB,EAAU,CAAC,KAAO,EAAI,YAAcE,EAAU,WAAavpK,EAAU4pK,EAAUxB,EAAQ,UAAU,QAAUgB,EAAUhB,EAAQ,aAAa,CAA6D,MAAO,GAAGiC,EAAUjB,EAAUhB,EAAQ,SAASwB,EAAUxB,EAAQ,UAAW,GAAGA,EAAQ,UAAUA,EAAQ,QAAQ,CAAkD,MAAMiB,EAAU,CAAC,KAAO,EAAI,YAAcE,EAAU,YAAcvpK,EAAUopK,EAAUhB,EAAQ,UAAU,WAAapoK,EAAU4pK,EAAUxB,EAAQ,UAAU,QAAUgB,EAAUhB,EAAQ,cAA33B,GAAGA,EAAQ,UAAUA,EAAQ,QAAQ,CAAqF,MAAMiB,EAAU,CAAC,KAAO,EAAI,YAAcE,EAAU,QAAUH,EAAUhB,EAAQ,aAAksB,CAA0G,CAAE,GAAGiB,UAAkB/uR,UAAU8tR,EAAQ,OAAQ,GAAGA,EAAQ,SAASA,EAAQ,OAAO,CAAmD,KAAK,CAAC,IAAIkC,EAAUlC,EAAQ,QAAQA,EAAQ,SAASgB,EAAUhB,EAAQ,UAAUmC,SAAiBjwR,QAAQ8tR,EAAQ,WAAWA,EAAQ,QAAQ,GAAGmC,EAAW,GAAGnC,EAAQ,UAAUA,EAAQ,QAAQ9tR,QAAQ8tR,EAAQ,SAASkC,OAAe,CAA+lB,MAAO,GAAGlC,EAAQ,UAAUA,EAAQ,OAAO9tR,QAAQ8tR,EAAQ,SAASkC,OAAe,CAA0H,CAAmD,GAAjDhwR,QAAQ8tR,EAAQ,SAAsU,SAAqBoC,GAAW,IAAIC,EAAUrC,EAAQ,QAAQA,EAAQ,SAASoC,EAAUpC,EAAQ,SAAS,MAAQ,GAA+B,IAA5BoC,EAAUpC,EAAQ,QAAe,GAAGA,EAAQ,UAAUA,EAAQ,OAAOqC,GAAWrC,EAAQ,QAAQA,EAAQ,SAASoC,EAAUpC,EAAQ,SAASA,EAAQ,WAAWA,EAAQ,SAASA,EAAQ,SAASoC,EAAUpC,EAAQ,SAASA,EAAQ,WAAW,WAAa,CAA6J,CAAE,GAA+B,IAA5BoC,EAAUpC,EAAQ,QAAe,GAAGA,EAAQ,UAAUA,EAAQ,QAAQqC,GAAWrC,EAAQ,QAAQA,EAAQ,SAASoC,EAAUpC,EAAQ,SAASA,EAAQ,WAAW,WAAa,CAA0M,MAAO,GAA+B,IAA5BoC,EAAUpC,EAAQ,QAAe,GAAGA,EAAQ,UAAUA,EAAQ,QAAQqC,GAAWrC,EAAQ,YAAY,CAAiD,MAAO,GAA+B,IAA5BoC,EAAUpC,EAAQ,QAAe,GAAGA,EAAQ,UAAUA,EAAQ,QAAQ,CAAqP,MAAMqC,GAAWrC,EAAQ,OAAU,OAAOqC,EAAWrC,EAAQ,QAAQA,EAAQ,SAASoC,EAAUpC,EAAQ,QAAQA,EAAQ,QAAmB,CAAvzDsC,CAAYrB,IAAekB,EAAW,GAAGnC,EAAQ,SAASA,EAAQ,OAAO,CAA0G,MAAM9tR,QAAQ8tR,EAAQ,SAAW,CAAE,IAAIuC,GAAWtB,EAAU,OAAO96R,EAAM65R,EAAQ,SAASgB,EAAUhB,EAAQ,QAAQuC,GAAWA,CAAU,CAAytE,SAAS3qK,EAAU4qK,GAAW,OAAO,IAAI3gT,KAAe,IAAV2gT,EAAiB,CAAuE,SAASP,EAAUQ,EAAUC,GAAW,IAAIC,EAAU/qK,EAAU8qK,GAAsK,OAAOD,EAAxJ,IAAI5gT,KAAK8gT,EAAU3C,EAAQ,WAAW2C,EAAU3C,EAAQ,UAAU2C,EAAU3C,EAAQ,WAAW,GAAyBA,EAAQ,WAAW,GAAiC,ICCjmS4C,EAA2B,CAAC,EAGhC,SAASzb,EAAoB0b,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBzjT,IAAjB0jT,EACH,OAAOA,EAAar4E,QAGrB,IAAIziO,EAAS46S,EAAyBC,GAAY,CAGjDp4E,QAAS,CAAC,GAOX,OAHAs4E,EAAoBF,GAAUjmT,KAAKoL,EAAOyiO,QAASziO,EAAQA,EAAOyiO,QAAS08D,GAGpEn/R,EAAOyiO,OACf,CAGA08D,EAAoBjvQ,EAAI6qR,ECxBxB5b,EAAoBvtR,EAAK5R,IACxB,IAAI09F,EAAS19F,GAAUA,EAAOgwO,WAC7B,IAAOhwO,EAAiB,QACxB,IAAM,EAEP,OADAm/R,EAAoBrpS,EAAE4nG,EAAQ,CAAEhsE,EAAGgsE,IAC5BA,CAAM,QCNd,IACIs9M,EADAC,EAAWhnT,OAAOw0B,eAAkBmE,GAAS34B,OAAOw0B,eAAemE,GAASA,GAASA,EAAa,UAQtGuyQ,EAAoBjoS,EAAI,SAASsE,EAAO+0F,GAEvC,GADU,EAAPA,IAAU/0F,EAAQ1G,KAAK0G,IAChB,EAAP+0F,EAAU,OAAO/0F,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAP+0F,GAAa/0F,EAAMw0O,WAAY,OAAOx0O,EAC1C,GAAW,GAAP+0F,GAAoC,oBAAf/0F,EAAMg6C,KAAqB,OAAOh6C,CAC5D,CACA,IAAIg0B,EAAKv7B,OAAOwd,OAAO,MACvB0tR,EAAoB9sQ,EAAE7C,GACtB,IAAI0rR,EAAM,CAAC,EACXF,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIt8S,EAAiB,EAAP4xF,GAAY/0F,EAAyB,iBAAXmD,KAAyBq8S,EAAe9gS,QAAQvb,GAAUA,EAAUs8S,EAASt8S,GACxH1K,OAAO+wC,oBAAoBrmC,GAASpD,SAAS9G,GAASymT,EAAIzmT,GAAO,IAAO+G,EAAM/G,KAI/E,OAFAymT,EAAa,QAAI,IAAM,EACvB/b,EAAoBrpS,EAAE05B,EAAI0rR,GACnB1rR,CACR,MCxBA2vQ,EAAoBrpS,EAAI,CAAC2sO,EAAS04E,KACjC,IAAI,IAAI1mT,KAAO0mT,EACXhc,EAAoB32Q,EAAE2yR,EAAY1mT,KAAS0qS,EAAoB32Q,EAAEi6M,EAAShuO,IAC5ER,OAAOkoB,eAAesmN,EAAShuO,EAAK,CAAE4nB,YAAY,EAAMD,IAAK++R,EAAW1mT,IAE1E,ECND0qS,EAAoBzgQ,EAAI,CAAC,EAGzBygQ,EAAoB/hS,EAAKg+S,GACjB37S,QAAQC,IAAIzL,OAAOyC,KAAKyoS,EAAoBzgQ,GAAG/nC,QAAO,CAACmuO,EAAUrwO,KACvE0qS,EAAoBzgQ,EAAEjqC,GAAK2mT,EAASt2E,GAC7BA,IACL,KCNJq6D,EAAoBt4E,EAAKu0F,GAEjB,aAAeA,EAAU,IAAM,CAAC,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,KAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,M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","sources":["assets/svg/File_Excel.svg","assets/svg/calculator.svg","assets/svg/close.svg","assets/svg/info_warning/error-filled.svg","assets/svg/info_warning/info-filled.svg","assets/svg/percent.svg","assets/svg/plus.svg","assets/svg/remove.svg","assets/svg/search.svg","OIDCAuth/Routing/routes.ts","Pages/ExpenseReports/helpers.ts","Pages/ExpensesJournal/helper.ts","appHistory.ts","components/Button/index.tsx","assets/svg/checkbox/checked.svg","assets/svg/checkbox/indeterminate.svg","components/FormCheckbox/FormCheckbox.tsx","components/FormDatePicker/CustomCalendar.tsx","assets/svg/calendar.svg","components/FormDatePicker/CustomToggleIcon.tsx","components/FormDatePicker/CustomYearCalendar.tsx","components/FormDatePicker/index.tsx","components/FormRadioGroup/index.tsx","assets/svg/info_warning/info.svg","components/IconTooltip/index.tsx","components/Label/index.tsx","components/Loader/Loader.tsx","components/MipTable/cells/CellCheckbox/CellCheckbox.tsx","components/MipTable/headerCells/HeaderCellCheckbox/HeaderCellCheckbox.tsx","components/MipTable/Pager/index.tsx","components/MipTable/MipTable.tsx","components/MipTable/cells/CellDateFormat/CellDateFormat.tsx","components/MipTable/cells/CellEnableLink/CellEnableLink.tsx","components/ModalLayout/ModalFooter.tsx","../node_modules/@progress/kendo-react-dialogs/dist/es/DialogTitleBar.js","../node_modules/@progress/kendo-react-dialogs/dist/es/DialogActionsBar.js","../node_modules/@progress/kendo-react-dialogs/dist/es/StageEnum.js","../node_modules/@progress/kendo-react-dialogs/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-dialogs/dist/es/Dialog.js","../node_modules/@progress/kendo-react-dialogs/dist/es/WindowTitlebar.js","../node_modules/@progress/kendo-react-dialogs/dist/es/WindowResizeHandlers.js","../node_modules/@progress/kendo-react-dialogs/dist/es/MiddleLayerOptimization.js","../node_modules/@progress/kendo-react-dialogs/dist/es/WindowActionsBar.js","../node_modules/@progress/kendo-react-dialogs/dist/es/Window.js","components/ModalLayout/ModalHeader.tsx","components/ModalLayout/index.tsx","components/Modals/ConfirmModal/index.tsx","components/Modals/helpers.ts","components/NavItem/NavItem.tsx","components/SingleSelectControl/SingleSelectControl.tsx","assets/svg/chevrons/chevron-left-forward.svg","assets/svg/chevrons/chevron-right-forward.svg","assets/svg/chevrons/chevron-left-bold.svg","assets/svg/chevrons/chevron-right-bold.svg","components/Table/Pagination/Pagination.tsx","components/vendor/Switch/index.tsx","components/Table/TableActions/TableActions.tsx","components/vendor/Badge/index.tsx","components/vendor/Input/index.tsx","components/vendor/commonClassName.ts","components/vendor/SingleSelect/helpers.ts","components/vendor/SingleSelect/enums.ts","components/vendor/SingleSelect/index.tsx","localization/helpers.ts","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/i18next/dist/esm/i18next.js","localization/index.ts","shared/configs/grid.config.ts","shared/constants/fileUploading.ts","shared/constants/onlySumRows.ts","assets/svg/speedometer.svg","assets/svg/chart/barChartArrowUp.svg","assets/svg/files/calendarTick.svg","assets/svg/currency.svg","assets/svg/user/userOutlined.svg","assets/svg/chart/pieChart.svg","assets/svg/files/compareDocuments.svg","assets/svg/book-open.svg","assets/svg/chart/barChart.svg","assets/svg/house.svg","assets/svg/folder/openFolder.svg","assets/svg/backup-logs.svg","shared/constants/routeLinkOptions.tsx","shared/constants/routes.ts","shared/constants/tableSearchPlaceholder.ts","shared/hooks/storeHooks.ts","shared/hooks/useDataState.ts","shared/hooks/useDownloadPrivateFile.ts","shared/hooks/useFileUploadingState.ts","shared/hooks/useForfeitureRate.ts","shared/hooks/useIsMounted.ts","shared/hooks/useLogoutFromApp.ts","shared/hooks/useModalActiveState.ts","shared/hooks/useTableActiveState.ts","shared/hooks/useUploader.ts","shared/hooks/useUploaderWithDataConfirmation.ts","shared/models/enums.bl.ts","shared/models/enums.dl.ts","shared/services/bl/api-urls.service.ts","shared/services/bl/authentication.service.ts","shared/services/bl/common.service.ts","shared/services/bl/config.service.ts","shared/services/bl/customVestingSchedules.service.ts","shared/services/bl/expenses.services.ts","shared/services/bl/expensesReports.service.ts","shared/services/bl/fileUploading.service.ts","shared/services/bl/files.service.ts","shared/services/bl/helpers.ts","store/loader/actions.ts","shared/services/bl/loader.service.ts","shared/services/bl/localization.service.ts","shared/services/bl/provisionalExpense.service.ts","shared/services/bl/shareRegister.service.ts","components/TranslatedText/index.tsx","shared/services/bl/toaster.service.tsx","shared/services/dl/user.data.service.ts","shared/shared.configs.ts","shared/hooks/useOnClickOutside.ts","shared/hooks/useDebounce.ts","shared/hooks/useTable.ts","shared/hooks/usePagination/paginationMeta.ts","shared/hooks/usePagination/paginationReducer.ts","shared/hooks/usePagination/usePagination.ts","shared/hooks/useIsFormModified.ts","shared/hooks/useSummaryReportViewState.ts","shared/shared.hooks.ts","shared/hooks/useDefaultFilterOption.ts","shared/hooks/usePrivateLayout.ts","shared/models/models.bl.ts","shared/regExps/regExps.ts","shared/shared.regExps.ts","shared/services/bl/authorization.service.ts","shared/services/bl/grantValuation.service.ts","shared/shared.services.ts","shared/services/bl/route.service.ts","store/redirect/actions.ts","shared/services/bl/validation.service.ts","shared/services/bl/employeeStatus.service.ts","shared/services/bl/activityLogs.service.ts","shared/services/bl/trueUp.service.ts","shared/services/bl/expensesJournal.service.ts","shared/services/bl/performanceHurdles.service.ts","shared/services/bl/manageEmployeeContracts.service.ts","shared/services/dl/error-log.data.service.ts","shared/utils/simpleSort.ts","shared/utils/currencyFormatter.ts","shared/utils/getSelectOptions.ts","shared/shared.utils.ts","shared/utils/checkIsMobileDevice.ts","shared/utils/stopPropagation.ts","shared/utils/makeAdditionalClassNamesGenerator.ts","shared/utils/getCorrectTableDataFromResponse.ts","shared/utils/getOnlySumRows.ts","shared/utils/dateFormatter.ts","shared/utils/formatBytes.ts","shared/utils/isEmptyObject.ts","shared/utils/localStorage.ts","shared/utils/parseErrorResponse.ts","store/expenses/helpers.ts","store/expenses/actions.ts","store/files/actions.ts","store/fileUploading/actions.ts","store/localization/actions.ts","store/reports/departmentView/actions.ts","store/reports/employeeView/actions.ts","store/reports/geographicalView/actions.ts","store/reports/planView/actions.ts","store/reports/trueUp/helpers.ts","store/reports/trueUp/actions.ts","store/reports/expenseOutlookView/actions.ts","store/reports/actions.ts","store/managerEmployeeContracts/actions.ts","store/actions.ts","store/userPanel/actions.ts","store/notificationCenter/actions.ts","shared/services/bl/dataExportingStatus.service.ts","store/dataExporting/actions.ts","store/dataExporting/enums.ts","store/dataExporting/types.ts","store/expenses/enums.ts","store/expenses/types.ts","store/fileUploading/enums.ts","store/fileUploading/types.ts","store/files/selectors.ts","store/files/enums.ts","store/files/types.ts","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","store/browserStorage.ts","store/user/reducer.ts","store/sidebar/enums.ts","store/sidebar/types.ts","store/expenses/reducer.ts","store/reports/summaryTotal/reducer.ts","store/reports/employeeView/reducer.ts","store/reports/geographicalView/reducer.ts","store/reports/planView/reducer.ts","store/reports/trueUp/reducer.ts","store/reports/expenseOutlookView/reducer.ts","store/reports/reducer.ts","store/files/reducer.ts","store/notificationCenter/reducer.ts","store/fileUploading/reducer.ts","store/localization/reducer.ts","store/dataExporting/reducer.ts","store/managerEmployeeContracts/reducer.ts","store/mainReducer.ts","store/redirect/reducer.ts","store/loader/reducer.ts","store/sidebar/reducer.ts","store/userPanel/reducer.ts","store/index.ts","store/loader/enums.ts","store/loader/types.ts","store/localization/selectors.ts","store/localization/enums.ts","store/localization/types.ts","store/managerEmployeeContracts/enums.ts","store/managerEmployeeContracts/types.ts","store/notificationCenter/enums.ts","store/notificationCenter/types.ts","store/redirect/enums.ts","store/redirect/types.ts","store/reports/departmentView/reducer.ts","store/reports/departmentView/enums.ts","store/reports/departmentView/types.ts","store/reports/employeeView/enums.ts","store/reports/employeeView/types.ts","store/reports/expenseOutlookView/enums.ts","store/reports/expenseOutlookView/types.ts","store/reports/geographicalView/enums.ts","store/reports/geographicalView/types.ts","store/reports/planView/enums.ts","store/reports/planView/types.ts","store/reports/provisionalExpense/actions.ts","store/reports/provisionalExpense/reducer.ts","store/reports/provisionalExpense/selectors.ts","store/reports/provisionalExpense/enums.ts","store/reports/provisionalExpense/types.ts","store/reports/storeName.ts","store/reports/summaryTotal/actions.ts","store/reports/summaryTotal/helpers.ts","store/reports/summaryTotal/selectors.ts","store/reports/summaryTotal/enums.ts","store/reports/summaryTotal/types.ts","store/reports/trueUp/enums.ts","store/reports/trueUp/types.ts","store/reports/enums.ts","store/reports/types.ts","store/redirect/selectors.ts","store/expenses/selectors.ts","store/reports/departmentView/selectors.ts","store/reports/employeeView/selectors.ts","store/reports/geographicalView/selectors.ts","store/reports/planView/selectors.ts","store/reports/trueUp/selectors.ts","store/reports/expenseOutlookView/selectors.ts","store/reports/selectors.ts","store/fileUploading/selectors.ts","store/notificationCenter/selectors.ts","store/managerEmployeeContracts/selectors.ts","store/selectors.ts","store/loader/selectors.ts","store/userPanel/selectors.ts","store/sidebar/selectors.ts","store/storeName.ts","store/userPanel/enums.ts","store/userPanel/types.ts","store/user/actions.ts","store/user/selectors.ts","store/user/enums.ts","store/user/types.ts","../node_modules/@microsoft/signalr/src/Errors.ts","../node_modules/@microsoft/signalr/src/HandshakeProtocol.ts","../node_modules/@microsoft/signalr/src/Subject.ts","../node_modules/@microsoft/signalr/src/HubConnection.ts","../node_modules/@microsoft/signalr/src/DefaultReconnectPolicy.ts","../node_modules/@microsoft/signalr/src/HeaderNames.ts","../node_modules/@microsoft/signalr/src/HttpClient.ts","../node_modules/@microsoft/signalr/src/AccessTokenHttpClient.ts","../node_modules/@microsoft/signalr/src/FetchHttpClient.ts","../node_modules/@microsoft/signalr/src/XhrHttpClient.ts","../node_modules/@microsoft/signalr/src/DefaultHttpClient.ts","../node_modules/@microsoft/signalr/src/AbortController.ts","../node_modules/@microsoft/signalr/src/LongPollingTransport.ts","../node_modules/@microsoft/signalr/src/ServerSentEventsTransport.ts","../node_modules/@microsoft/signalr/src/WebSocketTransport.ts","../node_modules/@microsoft/signalr/src/HttpConnection.ts","../node_modules/@microsoft/signalr/src/JsonHubProtocol.ts","../node_modules/@microsoft/signalr/src/HubConnectionBuilder.ts","../node_modules/@microsoft/signalr/src/IHubProtocol.ts","../node_modules/@microsoft/signalr/src/ILogger.ts","../node_modules/@microsoft/signalr/src/ITransport.ts","../node_modules/@microsoft/signalr/src/Loggers.ts","../node_modules/@microsoft/signalr/src/TextMessageFormat.ts","../node_modules/@microsoft/signalr/src/Utils.ts","../node_modules/@progress/kendo-data-query/dist/es/utils.js","../node_modules/@progress/kendo-data-query/dist/es/funcs.js","../node_modules/@progress/kendo-data-query/dist/es/filtering/filter-descriptor.interface.js","../node_modules/@progress/kendo-data-query/dist/es/accessor.js","../node_modules/@progress/kendo-data-query/dist/es/odata.operators.js","../node_modules/@progress/kendo-data-query/dist/es/mvc/operators.js","../node_modules/@progress/kendo-data-query/dist/es/filter-serialization.common.js","../node_modules/@progress/kendo-data-query/dist/es/mvc/deserialization.js","../node_modules/@progress/kendo-data-query/dist/es/sorting/sort-array.operator.js","../node_modules/@progress/kendo-data-query/dist/es/transducers.js","../node_modules/@progress/kendo-data-query/dist/es/filtering/filter.operators.js","../node_modules/@progress/kendo-data-query/dist/es/grouping/aggregate.operators.js","../node_modules/@progress/kendo-data-query/dist/es/filtering/filter-no-eval.js","../node_modules/@progress/kendo-data-query/dist/es/filtering/filter-expression.factory.js","../node_modules/@progress/kendo-data-query/dist/es/sorting/sort.js","../node_modules/@progress/kendo-data-query/dist/es/grouping/group.operators.js","../node_modules/@progress/kendo-data-query/dist/es/array.operators.js","../node_modules/@progress/kendo-popup-common/dist/es/align-point.js","../node_modules/@progress/kendo-popup-common/dist/es/align.js","../node_modules/@progress/kendo-popup-common/dist/es/add-scroll.js","../node_modules/@progress/kendo-popup-common/dist/es/apply-location-offset.js","../node_modules/@progress/kendo-popup-common/dist/es/owner-document.js","../node_modules/@progress/kendo-popup-common/dist/es/window.js","../node_modules/@progress/kendo-popup-common/dist/es/document.js","../node_modules/@progress/kendo-popup-common/dist/es/scrollbar-width.js","../node_modules/@progress/kendo-popup-common/dist/es/window-viewport.js","../node_modules/@progress/kendo-popup-common/dist/es/bounding-offset.js","../node_modules/@progress/kendo-popup-common/dist/es/offset-parent.js","../node_modules/@progress/kendo-popup-common/dist/es/is-body-offset.js","../node_modules/@progress/kendo-popup-common/dist/es/offset.js","../node_modules/@progress/kendo-popup-common/dist/es/parents.js","../node_modules/@progress/kendo-popup-common/dist/es/scroll-position.js","../node_modules/@progress/kendo-popup-common/dist/es/element-scroll-position.js","../node_modules/@progress/kendo-popup-common/dist/es/offset-parent-scroll-position.js","../node_modules/@progress/kendo-popup-common/dist/es/parent-scroll-position.js","../node_modules/@progress/kendo-popup-common/dist/es/position.js","../node_modules/@progress/kendo-popup-common/dist/es/position-with-scroll.js","../node_modules/@progress/kendo-popup-common/dist/es/remove-scroll.js","../node_modules/@progress/kendo-popup-common/dist/es/collision.js","../node_modules/@progress/kendo-popup-common/dist/es/restrict-to-view.js","../node_modules/@progress/kendo-popup-common/dist/es/siblings.js","../node_modules/@progress/kendo-popup-common/dist/es/sibling-container.js","../node_modules/@progress/kendo-popup-common/dist/es/utils.js","../node_modules/@progress/kendo-popup-common/dist/es/dom-utils.js","../node_modules/@progress/kendo-popup-common/dist/es/align-element.js","../node_modules/@progress/kendo-popup-common/dist/es/position-element.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/@progress/kendo-react-animation/dist/es/util.js","../node_modules/@progress/kendo-react-animation/dist/es/AnimationChild.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@progress/kendo-react-animation/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-animation/dist/es/Animation.js","../node_modules/@progress/kendo-react-animation/dist/es/Fade.js","../node_modules/@progress/kendo-react-animation/dist/es/Expand.js","../node_modules/@progress/kendo-react-animation/dist/es/Push.js","../node_modules/@progress/kendo-react-animation/dist/es/Slide.js","../node_modules/@progress/kendo-react-animation/dist/es/Zoom.js","../node_modules/@progress/kendo-react-animation/dist/es/Reveal.js","../node_modules/@progress/kendo-react-animation/dist/es/hooks/useAnimation.js","../node_modules/@progress/kendo-react-buttons/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-buttons/dist/es/util.js","../node_modules/@progress/kendo-react-buttons/dist/es/Button.js","../node_modules/@progress/kendo-react-buttons/dist/es/ButtonGroup.js","../node_modules/@progress/kendo-react-buttons/dist/es/ListButton/ButtonItem.js","../node_modules/@progress/kendo-react-buttons/dist/es/ListButton/SplitButtonItem.js","../node_modules/@progress/kendo-react-buttons/dist/es/ListButton/utils/navigation.js","../node_modules/@progress/kendo-react-buttons/node_modules/@progress/kendo-react-popup/dist/es/animation.js","../node_modules/@progress/kendo-react-buttons/node_modules/@progress/kendo-react-popup/dist/es/util.js","../node_modules/@progress/kendo-react-buttons/node_modules/@progress/kendo-react-popup/dist/es/services/alignService.js","../node_modules/@progress/kendo-react-buttons/node_modules/@progress/kendo-react-popup/dist/es/services/domService.js","../node_modules/@progress/kendo-react-buttons/node_modules/@progress/kendo-react-popup/dist/es/services/positionService.js","../node_modules/@progress/kendo-react-buttons/node_modules/@progress/kendo-react-popup/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-buttons/node_modules/@progress/kendo-react-popup/dist/es/Popup.js","../node_modules/@progress/kendo-react-buttons/node_modules/@progress/kendo-react-popup/dist/es/PopupWithContext.js","../node_modules/@progress/kendo-react-buttons/dist/es/ListButton/utils/popup.js","../node_modules/@progress/kendo-react-buttons/dist/es/ListButton/SplitButton.js","../node_modules/@progress/kendo-react-buttons/dist/es/ListButton/DropDownButtonItem.js","../node_modules/@progress/kendo-react-buttons/dist/es/ListButton/DropDownButton.js","../node_modules/@progress/kendo-react-buttons/dist/es/toolbar/Toolbar.js","../node_modules/@progress/kendo-react-buttons/dist/es/toolbar/tools/ToolbarItem.js","../node_modules/@progress/kendo-react-buttons/dist/es/toolbar/tools/ToolbarSeparator.js","../node_modules/@progress/kendo-react-buttons/dist/es/toolbar/tools/ToolbarSpacer.js","../node_modules/@progress/kendo-react-buttons/dist/es/Chip/selection-reducer.js","../node_modules/@progress/kendo-react-buttons/dist/es/Chip/focus-reducer.js","../node_modules/@progress/kendo-react-buttons/dist/es/Chip/data-reducer.js","../node_modules/@progress/kendo-react-buttons/dist/es/Chip/ChipList.js","../node_modules/@progress/kendo-react-buttons/dist/es/Chip/Chip.js","../node_modules/@progress/kendo-react-buttons/dist/es/FloatingActionButton/FloatingActionButtonItem.js","../node_modules/@progress/kendo-react-buttons/dist/es/FloatingActionButton/utils.js","../node_modules/@progress/kendo-react-buttons/dist/es/FloatingActionButton/FloatingActionButton.js","../node_modules/@progress/kendo-react-common/dist/es/browser-support.service.js","../node_modules/@progress/kendo-react-common/dist/es/canUseDOM.js","../node_modules/@progress/kendo-react-common/dist/es/classNames.js","../node_modules/@progress/kendo-react-common/dist/es/clone.js","../node_modules/@telerik/kendo-draggable/dist/es/main.js","../node_modules/@progress/kendo-react-common/dist/es/Draggable.js","../node_modules/@progress/kendo-react-common/dist/es/focus.js","../node_modules/@progress/kendo-react-common/dist/es/getTabIndex.js","../node_modules/@progress/kendo-react-common/dist/es/constants/index.js","../node_modules/@progress/kendo-react-common/dist/es/fieldList.js","../node_modules/@progress/kendo-react-common/dist/es/getter.js","../node_modules/@progress/kendo-react-common/dist/es/guid.js","../node_modules/@progress/kendo-react-common/dist/es/keys.js","../node_modules/@progress/kendo-react-common/dist/es/noop.js","../node_modules/@progress/kendo-react-common/dist/es/scrollbarWidth.js","../node_modules/@progress/kendo-react-common/dist/es/setter.js","../node_modules/@progress/kendo-react-common/dist/es/treeDataOperations.js","../node_modules/@progress/kendo-react-common/dist/es/validate-package.js","../node_modules/@progress/kendo-react-common/dist/es/hasRelativeStackingContext.js","../node_modules/@progress/kendo-react-common/dist/es/events/dispatchEvent.js","../node_modules/@progress/kendo-react-common/dist/es/hocs/AsyncFocusBlur.js","../node_modules/@progress/kendo-react-common/dist/es/hooks/useAsyncFocusBlur.js","../node_modules/@progress/kendo-react-common/dist/es/hooks/useDir.js","../node_modules/@progress/kendo-react-common/dist/es/hooks/useDraggable.js","../node_modules/@progress/kendo-react-common/dist/es/hooks/useRtl.js","../node_modules/@progress/kendo-react-common/dist/es/hooks/useMouse.js","../node_modules/@progress/kendo-react-common/dist/es/icons/constants.js","../node_modules/@progress/kendo-react-common/dist/es/icons/Icon.js","../node_modules/@progress/kendo-react-common/dist/es/icons/SvgIcon.js","../node_modules/@progress/kendo-react-common/dist/es/typography/constants.js","../node_modules/@progress/kendo-react-common/dist/es/typography/Typography.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/virtualization/Virtualization.js","../node_modules/@progress/kendo-date-math/dist/es/clone-date.js","../node_modules/@progress/kendo-date-math/dist/es/adjust-dst.js","../node_modules/@progress/kendo-date-math/dist/es/create-date.js","../node_modules/@progress/kendo-date-math/dist/es/get-date.js","../node_modules/@progress/kendo-date-math/dist/es/is-equal.js","../node_modules/@progress/kendo-date-math/dist/es/is-equal-date.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/virtualization/services/RowHeightService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/virtualization/services/ScrollerService.js","../node_modules/@progress/kendo-date-math/dist/es/day.enum.js","../node_modules/@progress/kendo-date-math/dist/es/add-days.js","../node_modules/@progress/kendo-date-math/dist/es/direction.enum.js","../node_modules/@progress/kendo-date-math/dist/es/day-of-week.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/models/NavigationAction.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/models/CalendarViewEnum.js","../node_modules/@progress/kendo-date-math/dist/es/week-in-year.js","../node_modules/@progress/kendo-date-math/dist/es/prev-day-of-week.js","../node_modules/@progress/kendo-date-math/dist/es/constants.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarCell.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarWeekCell.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/models/SelectionRange.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/CenturyViewService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/DecadeViewService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/MonthViewService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/YearViewService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/BusViewService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/utils.js","../node_modules/@progress/kendo-date-math/dist/es/last-day-of-month.js","../node_modules/@progress/kendo-date-math/dist/es/add-months.js","../node_modules/@progress/kendo-date-math/dist/es/set-year.js","../node_modules/@progress/kendo-date-math/dist/es/add-years.js","../node_modules/@progress/kendo-date-math/dist/es/add-decades.js","../node_modules/@progress/kendo-date-math/dist/es/add-centuries.js","../node_modules/@progress/kendo-date-math/dist/es/normalize-year.js","../node_modules/@progress/kendo-date-math/dist/es/first-decade-of-century.js","../node_modules/@progress/kendo-date-math/dist/es/last-decade-of-century.js","../node_modules/@progress/kendo-date-math/dist/es/first-year-of-decade.js","../node_modules/@progress/kendo-date-math/dist/es/duration-in-centuries.js","../node_modules/@progress/kendo-date-math/dist/es/last-year-of-decade.js","../node_modules/@progress/kendo-date-math/dist/es/duration-in-decades.js","../node_modules/@progress/kendo-date-math/dist/es/add-weeks.js","../node_modules/@progress/kendo-date-math/dist/es/first-day-of-month.js","../node_modules/@progress/kendo-date-math/dist/es/duration-in-months.js","../node_modules/@progress/kendo-date-math/dist/es/set-month.js","../node_modules/@progress/kendo-date-math/dist/es/first-month-of-year.js","../node_modules/@progress/kendo-date-math/dist/es/last-month-of-year.js","../node_modules/@progress/kendo-date-math/dist/es/duration-in-years.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/DOMService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/NavigationService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/ScrollSyncService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/WeekNamesService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/View.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/messages/index.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarHeaderTitle.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/defaults.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/Header.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/TodayCommand.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/ViewList.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarNavigationItem.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/Navigation.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/Calendar.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/models/mask.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/utils.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/models/kendo-date.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/models/TimePart.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/utils.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/DateInput.js","../node_modules/@progress/kendo-react-dateinputs/node_modules/@progress/kendo-react-popup/dist/es/animation.js","../node_modules/@progress/kendo-react-dateinputs/node_modules/@progress/kendo-react-popup/dist/es/util.js","../node_modules/@progress/kendo-react-dateinputs/node_modules/@progress/kendo-react-popup/dist/es/services/alignService.js","../node_modules/@progress/kendo-react-dateinputs/node_modules/@progress/kendo-react-popup/dist/es/services/domService.js","../node_modules/@progress/kendo-react-dateinputs/node_modules/@progress/kendo-react-popup/dist/es/services/positionService.js","../node_modules/@progress/kendo-react-dateinputs/node_modules/@progress/kendo-react-popup/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-dateinputs/node_modules/@progress/kendo-react-popup/dist/es/Popup.js","../node_modules/@progress/kendo-react-dateinputs/node_modules/@progress/kendo-react-popup/dist/es/PopupWithContext.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/datepicker/ToggleButton.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/common/PickerWrap.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/hooks/usePickerFloatingLabel.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/datepicker/DatePicker.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/services/DayPeriodService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/services/HoursService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/TimeList.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/services/DOMService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/services/MinutesService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/services/SecondsService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/TimePart.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/TimeSelector.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/TimePicker.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/HorizontalViewList.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/MultiViewCalendar.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/daterangepicker/DateRangePicker.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/datetimepicker/DateTimeSelector.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/datetimepicker/DateTimePicker.js","../node_modules/@progress/kendo-react-dropdowns/node_modules/@progress/kendo-react-popup/dist/es/animation.js","../node_modules/@progress/kendo-react-dropdowns/node_modules/@progress/kendo-react-popup/dist/es/util.js","../node_modules/@progress/kendo-react-dropdowns/node_modules/@progress/kendo-react-popup/dist/es/services/alignService.js","../node_modules/@progress/kendo-react-dropdowns/node_modules/@progress/kendo-react-popup/dist/es/services/domService.js","../node_modules/@progress/kendo-react-dropdowns/node_modules/@progress/kendo-react-popup/dist/es/services/positionService.js","../node_modules/@progress/kendo-react-dropdowns/node_modules/@progress/kendo-react-popup/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-dropdowns/node_modules/@progress/kendo-react-popup/dist/es/Popup.js","../node_modules/@progress/kendo-react-dropdowns/node_modules/@progress/kendo-react-popup/dist/es/PopupWithContext.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListContainer.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListFilter.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/utils.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListDefaultItem.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/ListItem.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/messages/index.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/List.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/VirtualScroll.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/Navigation.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/DropDownBase.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownList/DropDownList.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/ClearButton.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/SearchBar.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/ComboBox/ComboBox.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/AutoComplete/AutoComplete.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/MultiSelect/TagList.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/settings.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/MultiSelect/MultiSelect.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/common/MultiColumnList.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/MultiColumnComboBox/MultiColumnComboBox.js","../node_modules/@progress/kendo-react-treeview/dist/es/utils/itemIdUtils.js","../node_modules/@progress/kendo-react-treeview/dist/es/utils/SortedPublicItemIds.js","../node_modules/@progress/kendo-react-treeview/dist/es/utils/misc.js","../node_modules/@progress/kendo-react-treeview/dist/es/utils/itemUtils.js","../node_modules/@progress/kendo-react-treeview/dist/es/utils/getItemIdUponKeyboardNavigation.js","../node_modules/@progress/kendo-react-treeview/dist/es/utils/consts.js","../node_modules/@progress/kendo-react-treeview/dist/es/TreeViewItem.js","../node_modules/@progress/kendo-react-treeview/dist/es/utils/FieldsService.js","../node_modules/@progress/kendo-react-treeview/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-treeview/dist/es/TreeView.js","../node_modules/@progress/kendo-react-treeview/dist/es/TreeViewDragClue.js","../node_modules/@progress/kendo-react-treeview/dist/es/TreeViewDragAnalyzer.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownTree/useDropdownWidth.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownTree/ListNoData.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/DropDownTree/DropDownTree.js","../node_modules/@progress/kendo-react-dropdowns/dist/es/MultiSelectTree/MultiSelectTree.js","../node_modules/@progress/kendo-react-form/dist/es/FormContext.js","../node_modules/@progress/kendo-react-form/dist/es/Field.js","../node_modules/@progress/kendo-react-form/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-form/dist/es/Form.js","../node_modules/@progress/kendo-react-form/dist/es/FormElement.js","../node_modules/@progress/kendo-react-data-tools/dist/es/messages/index.js","../node_modules/@progress/kendo-react-data-tools/dist/es/pager/PagerNumericButtons.js","../node_modules/@progress/kendo-react-data-tools/dist/es/pager/PagerInput.js","../node_modules/@progress/kendo-react-data-tools/dist/es/pager/PagerPageSizes.js","../node_modules/@progress/kendo-react-data-tools/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-data-tools/dist/es/pager/Pager.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filteringCells/FilterComponent.js","../node_modules/@progress/kendo-react-data-tools/dist/es/navigation/constants.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filteringCells/BooleanFilter.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filteringCells/DateFilter.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filteringCells/NumericFilter.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filteringCells/TextFilter.js","../node_modules/@progress/kendo-react-data-tools/dist/es/navigation/TableKeyboardNavigationContext.js","../node_modules/@progress/kendo-react-data-tools/dist/es/navigation/hooks.js","../node_modules/@progress/kendo-react-data-tools/dist/es/header/HeaderThElement.js","../node_modules/@progress/kendo-react-data-tools/dist/es/navigation/utils.js","../node_modules/@progress/kendo-react-data-tools/dist/es/header/utils/index.js","../node_modules/@progress/kendo-react-data-tools/dist/es/header/Header.js","../node_modules/@progress/kendo-react-data-tools/dist/es/header/HeaderCell.js","../node_modules/@progress/kendo-react-data-tools/dist/es/header/SortSettings.js","../node_modules/@progress/kendo-react-data-tools/dist/es/drag/ColumnResizer.js","../node_modules/@progress/kendo-react-data-tools/dist/es/drag/ColumnDraggable.js","../node_modules/@progress/kendo-react-data-tools/dist/es/header/HeaderRow.js","../node_modules/@progress/kendo-react-data-tools/dist/es/drag/ColumnResize.js","../node_modules/@progress/kendo-react-data-tools/dist/es/drag/CommonDragLogic.js","../node_modules/@progress/kendo-react-data-tools/dist/es/drag/DragClue.js","../node_modules/@progress/kendo-react-data-tools/dist/es/drag/DropClue.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filter/filters/TextFilter.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filter/filters/NumericFilter.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filter/filters/DateFilter.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filter/filters/EnumFilter.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filter/filters/BooleanFilter.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filter/operators.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filter/Expression.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filter/Group.js","../node_modules/@progress/kendo-react-data-tools/dist/es/filter/Filter.js","../node_modules/@progress/kendo-react-data-tools/dist/es/columnmenu/ColumnMenuOperators.js","../node_modules/@progress/kendo-react-data-tools/dist/es/utils/group-operations.js","../node_modules/@progress/kendo-react-data-tools/dist/es/navigation/TableKeyboardNavigation.js","../node_modules/@progress/kendo-react-data-tools/dist/es/selection/constants.js","../node_modules/@progress/kendo-react-data-tools/dist/es/selection/utils.js","../node_modules/@progress/kendo-react-data-tools/dist/es/selection/TableSelection.js","../node_modules/@progress/kendo-react-grid/dist/es/GridColumn.js","../node_modules/@progress/kendo-react-grid/dist/es/utils/index.js","../node_modules/@progress/kendo-react-grid/dist/es/cells/GridSelectionCell.js","../node_modules/@progress/kendo-react-grid/dist/es/cells/GridHierarchyCell.js","../node_modules/@progress/kendo-react-grid/dist/es/constants/index.js","../node_modules/@progress/kendo-react-grid/dist/es/cells/GridEditCell.js","../node_modules/@progress/kendo-react-grid/dist/es/header/Header.js","../node_modules/@progress/kendo-react-grid/dist/es/interfaces/GridSortSettings.js","../node_modules/@progress/kendo-react-grid/dist/es/drag/ColumnResizer.js","../node_modules/@progress/kendo-react-grid/dist/es/drag/ColumnDraggable.js","../node_modules/@progress/kendo-react-popup/dist/es/animation.js","../node_modules/@progress/kendo-react-popup/node_modules/@progress/kendo-react-common/dist/es/canUseDOM.js","../node_modules/@progress/kendo-react-popup/node_modules/@progress/kendo-react-common/dist/es/contexts/ZIndexContext.js","../node_modules/@progress/kendo-react-popup/node_modules/@progress/kendo-react-common/dist/es/classNames.js","../node_modules/@progress/kendo-react-popup/dist/es/util.js","../node_modules/@progress/kendo-react-popup/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-popup/dist/es/PopupWithoutContext.js","../node_modules/@progress/kendo-react-popup/node_modules/@progress/kendo-react-common/dist/es/validate-package.js","../node_modules/@progress/kendo-react-popup/dist/es/Popup.js","../node_modules/@progress/kendo-react-grid/dist/es/columnMenu/GridColumnMenuWrapper.js","../node_modules/@progress/kendo-react-grid/dist/es/messages/index.js","../node_modules/@progress/kendo-react-grid/dist/es/header/GridHeaderCell.js","../node_modules/@progress/kendo-react-grid/dist/es/header/HeaderRow.js","../node_modules/@progress/kendo-react-grid/dist/es/filterCommon.js","../node_modules/@progress/kendo-react-grid/dist/es/cells/GridFilterCell.js","../node_modules/@progress/kendo-react-grid/dist/es/header/FilterRow.js","../node_modules/@progress/kendo-react-grid/dist/es/drag/GroupingIndicator.js","../node_modules/@progress/kendo-react-grid/dist/es/header/GroupPanel.js","../node_modules/@progress/kendo-react-grid/dist/es/footer/Footer.js","../node_modules/@progress/kendo-react-grid/dist/es/VirtualScroll.js","../node_modules/@progress/kendo-react-grid/dist/es/drag/ColumnResize.js","../node_modules/@progress/kendo-react-grid/dist/es/drag/CommonDragLogic.js","../node_modules/@progress/kendo-react-grid/dist/es/cells/GridCell.js","../node_modules/@progress/kendo-react-grid/dist/es/cells/GridGroupCell.js","../node_modules/@progress/kendo-react-grid/dist/es/rows/GridRow.js","../node_modules/@progress/kendo-react-grid/dist/es/header/GridHeaderSelectionCell.js","../node_modules/@progress/kendo-react-grid/dist/es/GridNoRecords.js","../node_modules/@progress/kendo-react-grid/dist/es/footer/FooterRow.js","../node_modules/@progress/kendo-react-grid/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-grid/dist/es/cells/GridDetailCell.js","../node_modules/@progress/kendo-react-grid/dist/es/cells/GridDetailHierarchyCell.js","../node_modules/@progress/kendo-react-grid/dist/es/Grid.js","../node_modules/@progress/kendo-react-data-tools/dist/es/virtualization/columns.js","../node_modules/@progress/kendo-react-grid/dist/es/paging/GridPagerSettings.js","../node_modules/@progress/kendo-react-grid/dist/es/columnMenu/GridColumnMenuItemGroup.js","../node_modules/@progress/kendo-react-grid/dist/es/columnMenu/GridColumnMenuItem.js","../node_modules/@progress/kendo-react-grid/dist/es/columnMenu/GridColumnMenuGroup.js","../node_modules/@progress/kendo-react-grid/dist/es/columnMenu/GridColumnMenuSort.js","../node_modules/@progress/kendo-react-grid/dist/es/columnMenu/GridColumnMenuItemContent.js","../node_modules/@progress/kendo-react-grid/dist/es/columnMenu/GridColumnMenuFilterCell.js","../node_modules/@progress/kendo-react-grid/dist/es/columnMenu/GridColumnMenuFilterUI.js","../node_modules/@progress/kendo-react-grid/dist/es/columnMenu/GridColumnMenuFilter.js","../node_modules/@progress/kendo-react-grid/dist/es/columnMenu/GridColumnMenuCheckboxFilter.js","../node_modules/@progress/kendo-react-grid/dist/es/rows/GridDetailRow.js","../node_modules/@progress/kendo-react-grid/dist/es/GridToolbar.js","../node_modules/@progress/kendo-react-indicators/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-indicators/dist/es/badge/Badge.js","../node_modules/@progress/kendo-react-indicators/dist/es/badge/BadgeContainer.js","../node_modules/@progress/kendo-react-indicators/dist/es/loader/Loader.js","../node_modules/@progress/kendo-react-indicators/dist/es/skeleton/Skeleton.js","../node_modules/@progress/kendo-react-inputs/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/utils/misc.js","../node_modules/@progress/kendo-drawing/dist/es/common/class.js","../node_modules/@progress/kendo-drawing/dist/es/common/support.js","../node_modules/@progress/kendo-drawing/dist/es/common/color/named-colors.js","../node_modules/@progress/kendo-drawing/dist/es/common/color/parse-color.js","../node_modules/@progress/kendo-drawing/dist/es/common/color/color.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/utils/color-parser.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/utils/color-cache.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/HexInput.js","../node_modules/@progress/kendo-react-inputs/dist/es/messages/index.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorInput.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorContrastLabels.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/utils/svg-calc.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorContrastSvg.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorGradient.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/utils/color-palette.service.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/models/palette-presets.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorPalette.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-popup/dist/es/animation.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-popup/dist/es/util.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-popup/dist/es/services/alignService.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-popup/dist/es/services/domService.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-popup/dist/es/services/positionService.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-popup/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-popup/dist/es/Popup.js","../node_modules/@progress/kendo-react-inputs/node_modules/@progress/kendo-react-popup/dist/es/PopupWithContext.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/Picker.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/ColorPicker.js","../node_modules/@progress/kendo-react-inputs/dist/es/colors/FlatColorPicker.js","../node_modules/@progress/kendo-react-inputs/dist/es/input/Input.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/parsing/result.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/parsing/stream.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/parsing/parsers.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/parsing/combinators.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/masking.service.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/utils.js","../node_modules/@progress/kendo-react-inputs/dist/es/maskedtextbox/MaskedTextBox.js","../node_modules/@progress/kendo-react-inputs/dist/es/numerictextbox/utils/index.js","../node_modules/@progress/kendo-react-inputs/dist/es/numerictextbox/NumericTextBox.js","../node_modules/@progress/kendo-react-inputs/dist/es/slider/SliderLabel.js","../node_modules/@progress/kendo-react-inputs/dist/es/slider/Slider.js","../node_modules/@progress/kendo-react-inputs/dist/es/range-slider/range-raducer.js","../node_modules/@progress/kendo-react-inputs/dist/es/range-slider/RangeSlider.js","../node_modules/@progress/kendo-react-inputs/dist/es/switch/Switch.js","../node_modules/@progress/kendo-react-inputs/dist/es/checkbox/Checkbox.js","../node_modules/@progress/kendo-react-inputs/dist/es/radiobutton/RadioButton.js","../node_modules/@progress/kendo-react-inputs/dist/es/radiobutton/RadioGroup.js","../node_modules/@progress/kendo-react-inputs/dist/es/textarea/TextArea.js","../node_modules/@progress/kendo-react-inputs/dist/es/rating/RatingItem.js","../node_modules/@progress/kendo-react-inputs/dist/es/rating/utils/index.js","../node_modules/@progress/kendo-react-inputs/dist/es/rating/rating-reducer.js","../node_modules/@progress/kendo-react-inputs/dist/es/rating/Rating.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/default-data.js","../node_modules/@telerik/kendo-intl/dist/es/common/is-string.js","../node_modules/@telerik/kendo-intl/dist/es/errors.js","../node_modules/@telerik/kendo-intl/dist/es/error-details.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/info.js","../node_modules/@telerik/kendo-intl/dist/es/common/constants.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/load-numbers.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/load-dates.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/territory.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/load.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/date-format-names.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/parse-range-date.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/currency.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/constants.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/first-day.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/weekend-range.js","../node_modules/@telerik/kendo-intl/dist/es/common/is-negative-zero.js","../node_modules/@telerik/kendo-intl/dist/es/numbers/format-currency-symbol.js","../node_modules/@telerik/kendo-intl/dist/es/numbers/group-integer.js","../node_modules/@telerik/kendo-intl/dist/es/numbers/is-currency-style.js","../node_modules/@telerik/kendo-intl/dist/es/common/pad.js","../node_modules/@telerik/kendo-intl/dist/es/common/round.js","../node_modules/@telerik/kendo-intl/dist/es/numbers/standard-number-format.js","../node_modules/@telerik/kendo-intl/dist/es/numbers/utils.js","../node_modules/@telerik/kendo-intl/dist/es/numbers/custom-number-format.js","../node_modules/@telerik/kendo-intl/dist/es/numbers/format-options.js","../node_modules/@telerik/kendo-intl/dist/es/numbers/format-number.js","../node_modules/@telerik/kendo-intl/dist/es/common/is-number.js","../node_modules/@telerik/kendo-intl/dist/es/numbers/parse-number.js","../node_modules/@telerik/kendo-intl/dist/es/common/format-string.js","../node_modules/@telerik/kendo-intl/dist/es/dates/date-pattern.js","../node_modules/@telerik/kendo-intl/dist/es/dates/date-name-type.js","../node_modules/@telerik/kendo-intl/dist/es/dates/format-names.js","../node_modules/@telerik/kendo-intl/dist/es/common/is-date.js","../node_modules/@telerik/kendo-intl/dist/es/dates/constants.js","../node_modules/@telerik/kendo-intl/dist/es/dates/format-date.js","../node_modules/@telerik/kendo-intl/dist/es/dates/time-utils.js","../node_modules/@telerik/kendo-intl/dist/es/dates/parse-date.js","../node_modules/@telerik/kendo-intl/dist/es/dates/split-date-format.js","../node_modules/@telerik/kendo-intl/dist/es/format.js","../node_modules/@progress/kendo-react-intl/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-intl/dist/es/Intl/IntlService.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/date-field-name.js","../node_modules/@telerik/kendo-intl/dist/es/cldr/number-symbols.js","../node_modules/@progress/kendo-react-intl/dist/es/Localization/messages.js","../node_modules/@progress/kendo-react-intl/dist/es/Localization/LocalizationService.js","../node_modules/@progress/kendo-react-intl/dist/es/globalization/GlobalizationContext.js","../node_modules/@progress/kendo-react-intl/dist/es/Intl/IntlProvider.js","../node_modules/@progress/kendo-react-intl/dist/es/Localization/loadMessages.js","../node_modules/@progress/kendo-react-intl/dist/es/Localization/LocalizationProvider.js","../node_modules/@progress/kendo-react-intl/dist/es/intlUtils.js","../node_modules/@progress/kendo-react-intl/dist/es/hooks/useInternationalization.js","../node_modules/@progress/kendo-react-intl/dist/es/hooks/useLocalization.js","../node_modules/@progress/kendo-react-labels/dist/es/messages/index.js","../node_modules/@progress/kendo-react-labels/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-labels/dist/es/Label.js","../node_modules/@progress/kendo-react-labels/dist/es/Error.js","../node_modules/@progress/kendo-react-labels/dist/es/Hint.js","../node_modules/@progress/kendo-react-labels/dist/es/FloatingLabel.js","../node_modules/@progress/kendo-react-tooltip/dist/es/utils.js","../node_modules/@progress/kendo-react-tooltip/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-tooltip/dist/es/Tooltip.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/domelementtype/lib/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/html-dom-parser/src/client/constants.ts","../node_modules/html-dom-parser/src/client/domparser.ts","../node_modules/html-dom-parser/src/client/html-to-dom.ts","../node_modules/html-dom-parser/src/client/utilities.ts","../node_modules/html-dom-parser/node_modules/domhandler/lib/index.js","../node_modules/html-dom-parser/node_modules/domhandler/lib/node.js","../node_modules/html-react-parser/src/attributes-to-props.ts","../node_modules/html-react-parser/src/dom-to-react.ts","../node_modules/html-react-parser/src/index.ts","../node_modules/html-react-parser/src/utilities.ts","../node_modules/html-react-parser/node_modules/domhandler/lib/index.js","../node_modules/html-react-parser/node_modules/domhandler/lib/node.js","../node_modules/inline-style-parser/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-collapsible/dist/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/html-parse-stringify/src/parse-tag.js","../node_modules/html-parse-stringify/src/parse.js","../node_modules/html-parse-stringify/src/stringify.js","../node_modules/html-parse-stringify/src/index.js","../node_modules/react-i18next/dist/es/Trans.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-property/lib/index.js","../node_modules/react-property/lib/possibleStandardNamesOptimized.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../../packages/react-router-dom/index.tsx","../../packages/react-router/index.tsx","../node_modules/clsx/dist/clsx.m.js","../node_modules/react-toastify/src/utils/propValidator.ts","../node_modules/react-toastify/src/utils/constant.ts","../node_modules/react-toastify/src/utils/cssTransition.tsx","../node_modules/react-toastify/src/utils/collapseToast.ts","../node_modules/react-toastify/src/core/eventManager.ts","../node_modules/react-toastify/src/hooks/useKeeper.ts","../node_modules/react-toastify/src/hooks/toastContainerReducer.ts","../node_modules/react-toastify/src/hooks/useToastContainer.ts","../node_modules/react-toastify/src/hooks/useToast.ts","../node_modules/react-toastify/src/components/CloseButton.tsx","../node_modules/react-toastify/src/components/ProgressBar.tsx","../node_modules/react-toastify/src/components/Icons.tsx","../node_modules/react-toastify/src/components/Toast.tsx","../node_modules/react-toastify/src/components/Transitions.tsx","../node_modules/react-toastify/src/components/ToastContainer.tsx","../node_modules/react-toastify/src/core/toast.tsx","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-js/src/index.ts","../node_modules/style-to-js/src/utilities.ts","../node_modules/style-to-object/src/index.ts","../node_modules/void-elements/index.js","../node_modules/cldr-dates-full/main|C:/Agent/_work/40/s/Deloitte.Assurance.Mip.UI/node_modules/cldr-dates-full/main|lazy|/^/.*/ca/-gregorian/.json$/|groupOptions: {}|namespace object","../node_modules/cldr-dates-full/main|C:/Agent/_work/40/s/Deloitte.Assurance.Mip.UI/node_modules/cldr-dates-full/main|lazy|/^/.*/dateFields/.json$/|groupOptions: {}|namespace object","../node_modules/cldr-dates-full/main|C:/Agent/_work/40/s/Deloitte.Assurance.Mip.UI/node_modules/cldr-dates-full/main|lazy|/^/.*/timeZoneNames/.json$/|groupOptions: {}|namespace object","../node_modules/cldr-numbers-full/main|C:/Agent/_work/40/s/Deloitte.Assurance.Mip.UI/node_modules/cldr-numbers-full/main|lazy|/^/.*/numbers/.json$/|groupOptions: {}|namespace object","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@azure/msal-browser/src/error/BrowserConfigurationAuthError.ts","../node_modules/@azure/msal-browser/src/error/BrowserConfigurationAuthErrorCodes.ts","../node_modules/@azure/msal-browser/src/event/EventType.ts","../node_modules/@azure/msal-browser/src/utils/BrowserConstants.ts","../node_modules/@azure/msal-common/src/error/AuthError.ts","../node_modules/@azure/msal-common/src/error/AuthErrorCodes.ts","../node_modules/@azure/msal-common/src/logger/Logger.ts","../node_modules/@azure/msal-common/src/utils/Constants.ts","../node_modules/@azure/msal-browser/src/app/IPublicClientApplication.ts","../node_modules/@azure/msal-react/src/MsalContext.ts","../node_modules/@azure/msal-browser/src/event/EventMessage.ts","../node_modules/@azure/msal-react/src/utils/utilities.ts","../node_modules/@azure/msal-react/src/packageMetadata.ts","../node_modules/@azure/msal-react/src/MsalProvider.tsx","../node_modules/@azure/msal-react/src/hooks/useMsal.ts","../node_modules/@azure/msal-react/src/hooks/useIsAuthenticated.ts","../node_modules/@azure/msal-react/src/error/ReactAuthError.ts","../node_modules/@progress/kendo-licensing/dist/index.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../node_modules/react-i18next/dist/es/I18nextProvider.js","../node_modules/@azure/msal-common/src/authority/ProtocolMode.ts","../node_modules/@azure/msal-common/src/authority/AuthorityOptions.ts","../node_modules/@azure/msal-common/src/error/ClientAuthErrorCodes.ts","../node_modules/@azure/msal-common/src/error/ClientAuthError.ts","../node_modules/@azure/msal-common/src/crypto/ICrypto.ts","../node_modules/@azure/msal-common/src/packageMetadata.ts","../node_modules/@azure/msal-common/src/account/AuthToken.ts","../node_modules/@azure/msal-common/src/utils/TimeUtils.ts","../node_modules/@azure/msal-common/src/cache/utils/CacheHelpers.ts","../node_modules/@azure/msal-common/src/error/ClientConfigurationErrorCodes.ts","../node_modules/@azure/msal-common/src/error/ClientConfigurationError.ts","../node_modules/@azure/msal-common/src/utils/StringUtils.ts","../node_modules/@azure/msal-common/src/request/ScopeSet.ts","../node_modules/@azure/msal-common/src/account/ClientInfo.ts","../node_modules/@azure/msal-common/src/account/AccountInfo.ts","../node_modules/@azure/msal-common/src/authority/AuthorityType.ts","../node_modules/@azure/msal-common/src/account/TokenClaims.ts","../node_modules/@azure/msal-common/src/cache/entities/AccountEntity.ts","../node_modules/@azure/msal-common/src/utils/UrlUtils.ts","../node_modules/@azure/msal-common/src/url/UrlString.ts","../node_modules/@azure/msal-common/src/authority/AuthorityMetadata.ts","../node_modules/@azure/msal-common/src/error/CacheErrorCodes.ts","../node_modules/@azure/msal-common/src/error/CacheError.ts","../node_modules/@azure/msal-common/src/cache/CacheManager.ts","../node_modules/@azure/msal-common/src/config/ClientConfiguration.ts","../node_modules/@azure/msal-common/src/network/INetworkModule.ts","../node_modules/@azure/msal-common/src/telemetry/performance/PerformanceEvent.ts","../node_modules/@azure/msal-common/src/telemetry/performance/StubPerformanceClient.ts","../node_modules/@azure/msal-browser/src/navigation/NavigationClient.ts","../node_modules/@azure/msal-browser/src/error/BrowserAuthErrorCodes.ts","../node_modules/@azure/msal-browser/src/error/BrowserAuthError.ts","../node_modules/@azure/msal-browser/src/network/FetchClient.ts","../node_modules/@azure/msal-browser/src/config/Configuration.ts","../node_modules/@azure/msal-browser/src/packageMetadata.ts","../node_modules/@azure/msal-browser/src/operatingcontext/BaseOperatingContext.ts","../node_modules/@azure/msal-browser/src/operatingcontext/StandardOperatingContext.ts","../node_modules/@azure/msal-common/src/error/JoseHeaderErrorCodes.ts","../node_modules/@azure/msal-common/src/error/JoseHeaderError.ts","../node_modules/@azure/msal-common/src/crypto/JoseHeader.ts","../node_modules/@azure/msal-browser/src/encode/Base64Encode.ts","../node_modules/@azure/msal-browser/src/encode/Base64Decode.ts","../node_modules/@azure/msal-browser/src/crypto/BrowserCrypto.ts","../node_modules/@azure/msal-browser/src/cache/DatabaseStorage.ts","../node_modules/@azure/msal-browser/src/cache/MemoryStorage.ts","../node_modules/@azure/msal-browser/src/cache/AsyncMemoryStorage.ts","../node_modules/@azure/msal-browser/src/crypto/CryptoOps.ts","../node_modules/@azure/msal-common/src/utils/FunctionWrappers.ts","../node_modules/@azure/msal-common/src/authority/RegionDiscovery.ts","../node_modules/@azure/msal-common/src/authority/Authority.ts","../node_modules/@azure/msal-common/src/authority/OpenIdConfigResponse.ts","../node_modules/@azure/msal-common/src/authority/CloudInstanceDiscoveryResponse.ts","../node_modules/@azure/msal-common/src/authority/CloudInstanceDiscoveryErrorResponse.ts","../node_modules/@azure/msal-common/src/error/InteractionRequiredAuthErrorCodes.ts","../node_modules/@azure/msal-common/src/error/InteractionRequiredAuthError.ts","../node_modules/@azure/msal-common/src/utils/ProtocolUtils.ts","../node_modules/@azure/msal-common/src/account/CcsCredential.ts","../node_modules/@azure/msal-browser/src/cache/BrowserStorage.ts","../node_modules/@azure/msal-browser/src/utils/BrowserProtocolUtils.ts","../node_modules/@azure/msal-browser/src/cache/BrowserCacheManager.ts","../node_modules/@azure/msal-browser/src/utils/BrowserUtils.ts","../node_modules/@azure/msal-browser/src/event/EventHandler.ts","../node_modules/@azure/msal-common/src/error/ServerError.ts","../node_modules/@azure/msal-common/src/network/ThrottlingUtils.ts","../node_modules/@azure/msal-common/src/network/NetworkManager.ts","../node_modules/@azure/msal-common/src/constants/AADServerParamKeys.ts","../node_modules/@azure/msal-common/src/request/RequestValidator.ts","../node_modules/@azure/msal-common/src/request/RequestParameterBuilder.ts","../node_modules/@azure/msal-common/src/authority/AuthorityFactory.ts","../node_modules/@azure/msal-common/src/client/BaseClient.ts","../node_modules/@azure/msal-common/src/crypto/PopTokenGenerator.ts","../node_modules/@azure/msal-common/src/cache/persistence/TokenCacheContext.ts","../node_modules/@azure/msal-common/src/response/ResponseHandler.ts","../node_modules/@azure/msal-common/src/utils/ClientAssertionUtils.ts","../node_modules/@azure/msal-common/src/client/AuthorizationCodeClient.ts","../node_modules/@azure/msal-common/src/telemetry/server/ServerTelemetryManager.ts","../node_modules/@azure/msal-browser/src/interaction_client/BaseInteractionClient.ts","../node_modules/@azure/msal-browser/src/crypto/PkceGenerator.ts","../node_modules/@azure/msal-browser/src/request/RequestHelpers.ts","../node_modules/@azure/msal-browser/src/interaction_client/StandardInteractionClient.ts","../node_modules/@azure/msal-browser/src/error/NativeAuthErrorCodes.ts","../node_modules/@azure/msal-browser/src/error/NativeAuthError.ts","../node_modules/@azure/msal-browser/src/broker/nativeBroker/NativeStatusCodes.ts","../node_modules/@azure/msal-common/src/client/RefreshTokenClient.ts","../node_modules/@azure/msal-common/src/client/SilentFlowClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentCacheClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/NativeInteractionClient.ts","../node_modules/@azure/msal-browser/src/broker/nativeBroker/NativeMessageHandler.ts","../node_modules/@azure/msal-browser/src/interaction_handler/InteractionHandler.ts","../node_modules/@azure/msal-browser/src/response/ResponseHandler.ts","../node_modules/@azure/msal-browser/src/interaction_client/PopupClient.ts","../node_modules/@azure/msal-browser/src/interaction_handler/RedirectHandler.ts","../node_modules/@azure/msal-browser/src/interaction_client/RedirectClient.ts","../node_modules/@azure/msal-browser/src/interaction_handler/SilentHandler.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentIframeClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentRefreshClient.ts","../node_modules/@azure/msal-browser/src/cache/TokenCache.ts","../node_modules/@azure/msal-browser/src/interaction_client/HybridSpaAuthorizationCodeClient.ts","../node_modules/@azure/msal-browser/src/interaction_client/SilentAuthCodeClient.ts","../node_modules/@azure/msal-browser/src/controllers/StandardController.ts","../node_modules/@azure/msal-browser/src/cache/AccountManager.ts","../node_modules/@azure/msal-browser/src/app/PublicClientApplication.ts","../node_modules/@azure/msal-browser/src/controllers/ControllerFactory.ts","OIDCAuth/AuthProvider/authProvider.ts","cookies.ts","AppRouter.tsx","webpack://my_incentive_plan/./src/components/SidePanel/SidePanel.module.css?6e6b","webpack://my_incentive_plan/./src/components/Tab/Tab.module.css?d1e1","components/Tab/Tab.tsx","assets/svg/PanelIcon1.svg","assets/svg/PanelIcon2.svg","assets/svg/PanelIcon3.svg","assets/svg/PanelIcon4.svg","assets/svg/PanelIconGreen1.svg","assets/svg/PanelIconGreen2.svg","assets/svg/PanelIconGreen3.svg","assets/svg/PanelIconGreen4.svg","assets/svg/arrowLeft.svg","assets/svg/arrowRight.svg","components/SidePanelAccordion/SidePanelAccordion.tsx","components/SidePanel/SidePanelRoute.tsx","components/SidePanel/SidePanel.tsx","../node_modules/@microsoft/applicationinsights-shims/src/Constants.ts","../node_modules/@microsoft/applicationinsights-shims/src/Helpers.ts","../node_modules/@microsoft/applicationinsights-shims/src/TsLibShims.ts","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InternalConstants.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/HelperFuncs.js","../node_modules/@microsoft/applicationinsights-react-js/dist-esm/withAITracking.js","OIDCAuth/models/OIDCUser.ts","shared/interceptors/global.interceptor.ts","shared/utils/parseFromString.ts","components/GlobalRequestLoader/index.tsx","components/Layout/Footer/FooterLink.tsx","components/Modals/DisplayContentModal/DisplayContentModal.tsx","components/Layout/Footer/CountrySpecificPrivacyLink/CountrySpecificPrivacyLink.tsx","components/Layout/Footer/Footer.tsx","components/MipTable/cells/CellTooltip/CellTooltip.tsx","components/Modals/PerformanceHurdleModal/helper.ts","assets/svg/plus-blue.svg","components/Modals/PerformanceHurdleModal/VestingConditionControl.tsx","components/Modals/PerformanceHurdleModal/SubhurdleControl.tsx","components/Modals/PerformanceHurdleModal/index.tsx","components/Modals/UpdateEstimate/helper.ts","components/Modals/UpdateEstimate/EstimateTable.tsx","components/Modals/UpdateEstimate/index.tsx","Pages/PerformanceHurdles/PerformanceHurdles.tsx","shared/constants/pageTitles.js","../node_modules/@microsoft/dynamicproto-js/lib/out/lib/src/DynamicProto.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/HelperFuncs.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EnvUtils.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DbgExtensionUtils.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DiagnosticLogger.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/EnumHelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/StorageHelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataPoint.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Metric.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CookieMgr.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/RandomHelper.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DataCacheHelper.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EventHelpers.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CoreUtils.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/W3cTraceParent.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/DomHelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/UrlHelperFuncs.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/PerfManager.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryHelpers.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InstrumentHooks.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Timing.js","../node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/AnalyticsPlugin.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/ContextTagKeys.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/InternalConstants.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","../node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/ConnectionStringParser.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/SeverityLevel.js","../node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/IConfig.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ChannelController.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseCore.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/NotificationManager.js","../node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/AppInsightsCore.js","../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/InternalConstants.js","../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","../node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Application.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Device.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Internal.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Location.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Session.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/TelemetryTrace.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/User.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/TelemetryContext.js","../node_modules/@microsoft/applicationinsights-properties-js/dist-esm/PropertiesPlugin.js","../node_modules/@microsoft/applicationinsights-web/dist-esm/InternalConstants.js","../node_modules/@microsoft/applicationinsights-web/dist-esm/Initialization.js","../node_modules/@microsoft/applicationinsights-web/dist-esm/__DynamicConstants.js","../node_modules/@microsoft/applicationinsights-react-js/dist-esm/ReactPlugin.js","appinsights/appInsights.js","assets/svg/info_warning/critical-notifications.svg","Pages/Unauthorized/Unauthorized.tsx","components/Layout/Header/AuthActions/AuthButton/AuthButton.tsx","assets/svg/Feature1.svg","assets/svg/Feature2.svg","assets/svg/Feature3.svg","Pages/Landing/Landing.tsx","shared/Routes/RoutesWithPageTitle.tsx","Routes.tsx","assets/svg/DeloitteLogo.svg","assets/svg/settings.svg","assets/svg/exit.svg","components/LanguageSelect/ErrorMessage/ErrorMessage.tsx","components/Modals/UserSettingsModal/index.tsx","components/LanguageSelect/UserLanguageSelect/UserLanguageSelect.tsx","components/UserAvatar/UserAvatar.tsx","webpack://my_incentive_plan/./src/components/Layout/UserMenuIcon/UserMenuSideBar.module.css?3ce8","components/Layout/UserMenuIcon/UserMenuSideBar.tsx","components/Layout/UserMenuIcon/UserMenuIcon.tsx","assets/svg/LanguageLogo.svg","components/LanguageSelect/LoginLanguageSelect/LoginLanguageSelect.tsx","components/Layout/Header/AuthActions/AuthActions.tsx","assets/svg/question/questionInCircleOutlined.svg","components/IconMenu/IconMenu.tsx","components/Layout/HelpCenterMenuIcon/HelpCenterMenuIcon.tsx","assets/svg/bell/bell-in-circle-outlined.svg","assets/svg/bell/bell-outlined.svg","components/NotificationCenter/NotificationPlaceholder/index.tsx","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-window/src/timer.js","../node_modules/react-window/src/domHelpers.js","../node_modules/react-window/src/createGridComponent.js","../node_modules/react-window/src/createListComponent.js","../node_modules/react-window/src/VariableSizeList.js","assets/svg/info_warning/success-filled.svg","../node_modules/html-react-parser/esm/index.mjs","components/NotificationCenter/core/enum.ts","components/NotificationCenter/Notification/Notification.tsx","components/NotificationCenter/core/hooks/index.ts","components/NotificationCenter/core/hooks/useVirtualListAutoSizer.ts","components/NotificationCenter/core/notification.service.ts","components/NotificationCenter/NotificationList/NotificationList.tsx","components/NotificationCenter/NotificationWrapper/index.tsx","components/NotificationCenter/core/SignalRNotification.tsx","components/NotificationCenter/index.tsx","components/Layout/Header/Header.tsx","components/Breadcrumbs/Breadcrumbs.tsx","components/Layout/PageContentHeader/PageContentHeader.tsx","components/Modals/SessionTimeoutModal/SessionTimeoutModal.constants.ts","components/Modals/SessionTimeoutModal/IdleTimer.ts","components/Modals/SessionTimeoutModal/SessionTimeoutModal.helpers.ts","components/Modals/SessionTimeoutModal/SessionTimeoutModal.hooks.ts","components/Modals/SessionTimeoutModal/SessionTimeoutModal.tsx","components/Modals/SessionTimeoutModal/SessionTimeoutModalContainer.tsx","App.tsx","shared/hooks/useUserLoggedOutFromAnotherTabListener.ts","index.tsx"],"sourcesContent":["var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgFileExcel(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 16,\n viewBox: \"0 0 13 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.58579 0C8.851 0 9.10536 0.105357 9.29289 0.292893L12.7071 3.70711C12.8946 3.89464 13 4.149 13 4.41421V15.5C13 15.7761 12.7761 16 12.5 16H1.5C1.22386 16 1 15.7761 1 15.5V13H0.5C0.223858 13 0 12.7761 0 12.5V6.5C0 6.22386 0.223858 6 0.5 6H1V0.5C1 0.223858 1.22386 0 1.5 0H8.58579ZM8 0.999L2 1V6H6.5C6.77614 6 7 6.22386 7 6.5V12.5C7 12.7761 6.77614 13 6.5 13H2V15H12V5H9C8.48716 5 8.06449 4.61396 8.00673 4.11662L8 4V0.999ZM9 1.414V4H11.586L9 1.414ZM3 7V8.29289L3.5 8.792L4 8.29289V7H5V8.5C5 8.63261 4.94732 8.75979 4.85355 8.85355L4.207 9.499L4.85355 10.1464C4.92857 10.2215 4.97729 10.3179 4.99377 10.4213L5 10.5V12H4V10.7071L3.5 10.207L3 10.7071V12H2V10.5C2 10.3674 2.05268 10.2402 2.14645 10.1464L2.793 9.5L2.14645 8.85355C2.07143 8.77854 2.02271 8.68214 2.00623 8.57869L2 8.5V7H3Z\",\n fill: \"#046A38\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFileExcel);\nexport default __webpack_public_path__ + \"static/media/File_Excel.7601a008f3cd6293347e466d22c8cd0a.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCalculator(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 18,\n viewBox: \"0 0 12 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.5 0C11.7761 0 12 0.223858 12 0.5V17.5C12 17.7761 11.7761 18 11.5 18H0.5C0.223858 18 0 17.7761 0 17.5V0.5C0 0.223858 0.223858 0 0.5 0H11.5ZM11 1H1V17H11V1ZM3 14C3.55228 14 4 14.4477 4 15C4 15.5523 3.55228 16 3 16C2.44772 16 2 15.5523 2 15C2 14.4477 2.44772 14 3 14ZM6 14C6.55228 14 7 14.4477 7 15C7 15.5523 6.55228 16 6 16C5.44772 16 5 15.5523 5 15C5 14.4477 5.44772 14 6 14ZM9 14C9.55229 14 10 14.4477 10 15C10 15.5523 9.55229 16 9 16C8.44771 16 8 15.5523 8 15C8 14.4477 8.44771 14 9 14ZM3 11C3.55228 11 4 11.4477 4 12C4 12.5523 3.55228 13 3 13C2.44772 13 2 12.5523 2 12C2 11.4477 2.44772 11 3 11ZM6 11C6.55228 11 7 11.4477 7 12C7 12.5523 6.55228 13 6 13C5.44772 13 5 12.5523 5 12C5 11.4477 5.44772 11 6 11ZM9 11C9.55229 11 10 11.4477 10 12C10 12.5523 9.55229 13 9 13C8.44771 13 8 12.5523 8 12C8 11.4477 8.44771 11 9 11ZM3 8C3.55228 8 4 8.44771 4 9C4 9.55229 3.55228 10 3 10C2.44772 10 2 9.55229 2 9C2 8.44771 2.44772 8 3 8ZM6 8C6.55228 8 7 8.44771 7 9C7 9.55229 6.55228 10 6 10C5.44772 10 5 9.55229 5 9C5 8.44771 5.44772 8 6 8ZM9 8C9.55229 8 10 8.44771 10 9C10 9.55229 9.55229 10 9 10C8.44771 10 8 9.55229 8 9C8 8.44771 8.44771 8 9 8ZM9.5 2C9.77614 2 10 2.22386 10 2.5V6.5C10 6.77614 9.77614 7 9.5 7H2.5C2.22386 7 2 6.77614 2 6.5V2.5C2 2.22386 2.22386 2 2.5 2H9.5ZM9 3H3V6H9V3Z\",\n fill: \"#0097A9\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCalculator);\nexport default __webpack_public_path__ + \"static/media/calculator.cee8e412ffbaae1625e179b92c7aae0f.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgClose(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.0885912 0.215695L0.146447 0.146447C0.320013 -0.0271197 0.589437 -0.0464049 0.784306 0.0885912L0.853553 0.146447L6 5.293L11.1464 0.146447C11.32 -0.0271197 11.5894 -0.0464049 11.7843 0.0885912L11.8536 0.146447C12.0271 0.320013 12.0464 0.589437 11.9114 0.784306L11.8536 0.853553L6.707 6L11.8536 11.1464C12.0271 11.32 12.0464 11.5894 11.9114 11.7843L11.8536 11.8536C11.68 12.0271 11.4106 12.0464 11.2157 11.9114L11.1464 11.8536L6 6.707L0.853553 11.8536C0.679987 12.0271 0.410563 12.0464 0.215695 11.9114L0.146447 11.8536C-0.0271197 11.68 -0.0464049 11.4106 0.0885912 11.2157L0.146447 11.1464L5.293 6L0.146447 0.853553C-0.0271197 0.679987 -0.0464049 0.410563 0.0885912 0.215695Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.60145d5a90f49a9981f13dfde59f283c.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgErrorFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 18,\n viewBox: \"0 0 18 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.35355 0.146447L17.8536 8.64645C18.0488 8.84171 18.0488 9.15829 17.8536 9.35355L9.35355 17.8536C9.15829 18.0488 8.84171 18.0488 8.64645 17.8536L0.146447 9.35355C-0.0488155 9.15829 -0.0488155 8.84171 0.146447 8.64645L8.64645 0.146447C8.84171 -0.0488155 9.15829 -0.0488155 9.35355 0.146447ZM9 11C9.55229 11 10 11.4477 10 12C10 12.5523 9.55229 13 9 13C8.44771 13 8 12.5523 8 12C8 11.4477 8.44771 11 9 11ZM9 4C9.50817 4 9.92013 4.41196 9.92013 4.92013L9.91695 4.99655L9.53821 9.54152C9.51661 9.80067 9.29998 10 9.03993 10H8.96007C8.70002 10 8.48339 9.80067 8.46179 9.54152L8.08305 4.99655C8.04084 4.49013 8.41717 4.04538 8.92359 4.00318C8.949 4.00106 8.9745 4 9 4Z\",\n fill: \"#DA291C\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgErrorFilled);\nexport default __webpack_public_path__ + \"static/media/error-filled.72317ae71b61cd436f777eb41fe94906.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgInfoFilled(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8 0C12.4183 0 16 3.58172 16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0ZM8 6C8.55229 6 9 6.44772 9 7V11C9 11.5523 8.55229 12 8 12C7.44772 12 7 11.5523 7 11V7C7 6.44772 7.44772 6 8 6ZM8 3C8.55229 3 9 3.44772 9 4C9 4.55228 8.55229 5 8 5C7.44772 5 7 4.55228 7 4C7 3.44772 7.44772 3 8 3Z\",\n fill: \"#007CB0\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfoFilled);\nexport default __webpack_public_path__ + \"static/media/info-filled.aa4070239a07cbf7bed6b2e9f79cdb5d.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPercent(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 14,\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11 8.00004C12.6569 8.00004 14 9.34319 14 11C14 12.6569 12.6569 14 11 14C9.34315 14 8 12.6569 8 11C8 9.34319 9.34315 8.00004 11 8.00004ZM2.0889 13.2154L11.0889 0.21544C11.2461 -0.0116019 11.5576 -0.0682339 11.7846 0.0889491C11.9864 0.228667 12.0536 0.490296 11.9556 0.70617L11.9111 0.78465L2.9111 13.7846C2.75391 14.0117 2.44244 14.0683 2.21539 13.9111C2.01358 13.7714 1.94641 13.5098 2.04437 13.2939L2.0889 13.2154ZM11 9.00004C9.89543 9.00004 9 9.89548 9 11C9 12.1046 9.89543 13 11 13C12.1046 13 13 12.1046 13 11C13 9.89548 12.1046 9.00004 11 9.00004ZM3 4.52094e-05C4.65685 4.52094e-05 6 1.34319 6 3.00005C6 4.6569 4.65685 6.00005 3 6.00005C1.34315 6.00005 0 4.6569 0 3.00005C0 1.34319 1.34315 4.52094e-05 3 4.52094e-05ZM3 1.00005C1.89543 1.00005 1 1.89548 1 3.00005C1 4.10461 1.89543 5.00005 3 5.00005C4.10457 5.00005 5 4.10461 5 3.00005C5 1.89548 4.10457 1.00005 3 1.00005Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPercent);\nexport default __webpack_public_path__ + \"static/media/percent.d9abc216580c29e245ea3bff3eccfb34.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPlus(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.41012 0.00805567L7.5 0C7.74546 0 7.94961 0.176875 7.99194 0.410124L8 0.5V7H14.5C14.7455 7 14.9496 7.17688 14.9919 7.41012L15 7.5C15 7.74546 14.8231 7.94961 14.5899 7.99194L14.5 8H8V14.5C8 14.7455 7.82312 14.9496 7.58988 14.9919L7.5 15C7.25454 15 7.05039 14.8231 7.00806 14.5899L7 14.5V8H0.5C0.25454 8 0.0503916 7.82312 0.00805567 7.58988L0 7.5C0 7.25454 0.176875 7.05039 0.410124 7.00806L0.5 7H7V0.5C7 0.25454 7.17688 0.0503916 7.41012 0.00805567L7.5 0L7.41012 0.00805567Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlus);\nexport default __webpack_public_path__ + \"static/media/plus.947c2aeb747d584baadae379d5a87942.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgRemove(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 16,\n viewBox: \"0 0 14 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3 4V15H11V4H3ZM5.5 6C5.77614 6 6 6.22386 6 6.5V12.5C6 12.7761 5.77614 13 5.5 13C5.22386 13 5 12.7761 5 12.5V6.5C5 6.22386 5.22386 6 5.5 6ZM8.5 6C8.77614 6 9 6.22386 9 6.5V12.5C9 12.7761 8.77614 13 8.5 13C8.22386 13 8 12.7761 8 12.5V6.5C8 6.22386 8.22386 6 8.5 6ZM8.71922 1H5.28078L4.78078 3H9.21922L8.71922 1ZM12 4V15.5C12 15.7455 11.8231 15.9496 11.5899 15.9919L11.5 16H2.5C2.25454 16 2.05039 15.8231 2.00806 15.5899L2 15.5V4H0.5C0.223858 4 0 3.77614 0 3.5C0 3.25454 0.176875 3.05039 0.410124 3.00806L0.5 3H3.75L4.40532 0.378732C4.46096 0.156149 4.66095 0 4.89039 0H9.10961C9.33905 0 9.53904 0.156149 9.59468 0.378732L10.25 3H13.5C13.7455 3 13.9496 3.17688 13.9919 3.41012L14 3.5C14 3.74546 13.8231 3.94961 13.5899 3.99194L13.5 4H12Z\",\n fill: \"#A7A8AA\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRemove);\nexport default __webpack_public_path__ + \"static/media/remove.ade4e666d464987ef8fbb0fcbbe8b16e.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgSearch(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.5 0C10.0899 0 13 2.91015 13 6.5C13 8.11487 12.4111 9.59219 11.4364 10.7289L15.8536 15.1464C16.0488 15.3417 16.0488 15.6583 15.8536 15.8536C15.68 16.0271 15.4106 16.0464 15.2157 15.9114L15.1464 15.8536L10.7289 11.4364C9.59219 12.4111 8.11487 13 6.5 13C2.91015 13 0 10.0899 0 6.5C0 2.91015 2.91015 0 6.5 0ZM6.5 1C3.46243 1 1 3.46243 1 6.5C1 9.53757 3.46243 12 6.5 12C9.53757 12 12 9.53757 12 6.5C12 3.46243 9.53757 1 6.5 1Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearch);\nexport default __webpack_public_path__ + \"static/media/search.9889f17d8ee6a7759d49e446b1bc2d4f.svg\";\nexport { ForwardRef as ReactComponent };","export enum OIDCROUTES {\r\n // oidc-client routes\r\n login = '/login',\r\n logout = '/logout',\r\n signin = '/signin-oidc',\r\n signout = '/signout-callback-oidc',\r\n // need check for this route\r\n signinSilent = '/signin-silent-oidc',\r\n}\r\n\r\nexport const OIDCRoutesList: OIDCROUTES[] = Object.keys(OIDCROUTES).reduce((acc, option) => {\r\n if (Number.isNaN(+option)) {\r\n acc.push(OIDCROUTES[option as keyof typeof OIDCROUTES]);\r\n }\r\n return acc;\r\n}, [] as OIDCROUTES[]);\r\n","import { TFunction } from 'react-i18next';\r\nimport { defaultPagingRequestData as defaultPageDataWithoutOrderBy } from 'shared/configs/grid.config';\r\nimport { IColumnConfig } from 'components/Table/interfaces';\r\nimport {\r\n DepartmentViewTableData,\r\n EmployeeViewTableData,\r\n ExpenseOutlookTableData,\r\n GeographicalViewTableData,\r\n PlanViewTableData,\r\n SummaryTotalTableData,\r\n} from 'shared/models/models.bl';\r\n\r\nexport const getTotalProvisionLabel = (\r\n t: TFunction,\r\n dateFilter?: string,\r\n isProvisionCalculationComplete = false\r\n): string => {\r\n if (!isProvisionCalculationComplete) {\r\n return t('SbpExpensesReports.ProvisionalExpensePanel.TotalProvisionsBlock.NoProvisionalExpense');\r\n }\r\n\r\n return dateFilter\r\n ? t('SbpExpensesReports.ProvisionalExpensePanel.TotalProvisionsBlock.TotalProvisionalExpenseForSelectedMonth', {\r\n dateFilter,\r\n })\r\n : t('SbpExpensesReports.ProvisionalExpensePanel.TotalProvisionsBlock.TotalProvisionalExpenseForAllMonths');\r\n};\r\n\r\nexport const defaultFilters = {\r\n location: '',\r\n plan: '',\r\n};\r\n\r\nexport const YTD_EXPENSE_NAME = 'SbpExpensesReports.Common.YTDVestedExpenseAsOfYear';\r\n\r\nexport const defaultPagingSummaryTotalRequestData = {\r\n ...defaultPageDataWithoutOrderBy,\r\n orderBy: 'grantDate' as IColumnConfig['name'],\r\n};\r\n\r\nexport const defaultPagingDepartmentViewRequestData = {\r\n ...defaultPageDataWithoutOrderBy,\r\n orderBy: 'GrantPlan' as IColumnConfig['name'],\r\n};\r\n\r\nexport const defaultPagingEmployeeViewRequestData = {\r\n ...defaultPageDataWithoutOrderBy,\r\n orderBy: 'optionholder' as IColumnConfig['name'],\r\n};\r\n\r\nexport const defaultPagingGeographicalViewRequestData = {\r\n ...defaultPageDataWithoutOrderBy,\r\n orderBy: 'grantDate' as IColumnConfig['name'],\r\n};\r\n\r\nexport const defaultPagingPlanViewRequestData = {\r\n ...defaultPageDataWithoutOrderBy,\r\n orderBy: 'grantDate' as IColumnConfig['name'],\r\n};\r\n\r\nexport const defaultPagingExpenseOutlookViewRequestData = {\r\n ...defaultPageDataWithoutOrderBy,\r\n orderBy: '' as IColumnConfig['name'],\r\n};\r\n","import * as Models from 'shared/shared.models';\r\nimport Utils from 'shared/shared.utils';\r\nimport { IExpensesJournalFilters } from 'shared/models/models.bl';\r\n\r\nenum RowNames {\r\n drExpense = 'GenerateJournalEntries.Table.DrExpenseRowTitle',\r\n drOtherAccrualsProvisions = 'GenerateJournalEntries.Table.DrOtherAccrualsProvisionsRowTitle',\r\n crEsopEquity = 'GenerateJournalEntries.Table.CrEsopEquityRowTitle',\r\n crTrueUp = 'GenerateJournalEntries.Table.CrTrueUpRowTitle',\r\n drEsopEquity = 'GenerateJournalEntries.Table.DrEsopEquityRowTitle',\r\n}\r\n\r\nconst getCalculationByName = (name: string, data: Models.BM.IExpensesJournalCalculatedData) => {\r\n const { currentMonthExpense, provisionCurrentMonth, trueUpCurrentMonth, provisionPreviousMonth } = data;\r\n let debit = null;\r\n let credit = null;\r\n\r\n switch (name) {\r\n case RowNames.drExpense:\r\n debit = currentMonthExpense;\r\n break;\r\n case RowNames.drOtherAccrualsProvisions:\r\n {\r\n const otherAccruals = provisionCurrentMonth - provisionPreviousMonth;\r\n\r\n if (otherAccruals > 0) {\r\n credit = otherAccruals;\r\n } else {\r\n debit = 0 - otherAccruals;\r\n }\r\n }\r\n break;\r\n case RowNames.crEsopEquity:\r\n {\r\n const otherAccruals = provisionCurrentMonth - provisionPreviousMonth;\r\n\r\n if (otherAccruals > 0) {\r\n credit = currentMonthExpense - otherAccruals;\r\n } else {\r\n credit = currentMonthExpense + (0 - otherAccruals);\r\n }\r\n }\r\n break;\r\n case RowNames.crTrueUp:\r\n if (trueUpCurrentMonth > 0) {\r\n debit = trueUpCurrentMonth;\r\n } else {\r\n credit = 0 - trueUpCurrentMonth;\r\n }\r\n break;\r\n case RowNames.drEsopEquity:\r\n if (trueUpCurrentMonth > 0) {\r\n credit = trueUpCurrentMonth;\r\n } else {\r\n debit = 0 - trueUpCurrentMonth;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return { debit, credit };\r\n};\r\n\r\nexport const tableConfig = [\r\n {\r\n name: RowNames.drExpense,\r\n debit: '',\r\n credit: null,\r\n },\r\n {\r\n name: RowNames.drOtherAccrualsProvisions,\r\n debit: '',\r\n credit: '',\r\n },\r\n {\r\n name: RowNames.crEsopEquity,\r\n debit: null,\r\n credit: '',\r\n },\r\n {\r\n name: RowNames.crTrueUp,\r\n debit: '',\r\n credit: '',\r\n },\r\n {\r\n name: RowNames.drEsopEquity,\r\n debit: '',\r\n credit: '',\r\n },\r\n];\r\n\r\nexport const getTableDataAndExportData = (data: Models.BM.IExpensesJournalCalculatedData) => {\r\n const { provisionCurrentMonth, trueUpCurrentMonth, provisionPreviousMonth } = data;\r\n let dataToExport: string[] = [];\r\n const tableConfigData = tableConfig.map(({ name }) => {\r\n const { debit: calculatedDebit, credit: calculatedCredit } = getCalculationByName(name, data);\r\n const d = typeof calculatedDebit === 'number' ? Utils.currencyFormatter(calculatedDebit) : '';\r\n const c = typeof calculatedCredit === 'number' ? Utils.currencyFormatter(calculatedCredit) : '';\r\n\r\n switch (name) {\r\n case RowNames.drExpense:\r\n dataToExport = [...dataToExport, d];\r\n break;\r\n case RowNames.drOtherAccrualsProvisions:\r\n dataToExport = [...dataToExport, 'Dr', d, c];\r\n break;\r\n case RowNames.crEsopEquity:\r\n dataToExport = [...dataToExport, c];\r\n break;\r\n case RowNames.crTrueUp:\r\n dataToExport = [...dataToExport, 'Cr', d, c];\r\n break;\r\n case RowNames.drEsopEquity:\r\n dataToExport = [\r\n ...dataToExport,\r\n 'Dr',\r\n d,\r\n c,\r\n Utils.currencyFormatter(provisionCurrentMonth),\r\n Utils.currencyFormatter(provisionPreviousMonth),\r\n Utils.currencyFormatter(trueUpCurrentMonth),\r\n ];\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return {\r\n name,\r\n debit: d,\r\n credit: c,\r\n };\r\n });\r\n\r\n return {\r\n tableConfigData,\r\n dataToExport: dataToExport.join('||'),\r\n };\r\n};\r\n\r\nexport const defaultItemDate = new Date();\r\n\r\nexport const defaultSelectedOptions: IDefaultSelectedOptions = {\r\n reportUId: '',\r\n monthYear: defaultItemDate,\r\n};\r\n\r\nexport const defaultMultipleSelectedOptions: IDefaultMultipleSelectedOptions = {\r\n locations: [],\r\n schemes: [],\r\n entities: [],\r\n departmentAs: [],\r\n departmentBs: [],\r\n departmentCs: [],\r\n};\r\n\r\nexport enum JournalFiltersTypes {\r\n FilterByLocation = 'locations',\r\n FilterByPlan = 'schemes',\r\n Entities = 'entities',\r\n DepartmentAs = 'departmentAs',\r\n DepartmentBs = 'departmentBs',\r\n DepartmentCs = 'departmentCs',\r\n}\r\n\r\nexport const defaultFilterOptions = {\r\n [JournalFiltersTypes.FilterByLocation]: [],\r\n [JournalFiltersTypes.FilterByPlan]: [],\r\n [JournalFiltersTypes.Entities]: [],\r\n [JournalFiltersTypes.DepartmentAs]: [],\r\n [JournalFiltersTypes.DepartmentBs]: [],\r\n [JournalFiltersTypes.DepartmentCs]: [],\r\n};\r\n\r\ninterface IDefaultSelectedOptions {\r\n reportUId: string;\r\n monthYear: Date;\r\n}\r\n\r\ninterface IDefaultMultipleSelectedOptions {\r\n locations: string[];\r\n schemes: string[];\r\n entities: string[];\r\n departmentAs: string[];\r\n departmentBs: string[];\r\n departmentCs: string[];\r\n}\r\n\r\nexport const ALL = 'All';\r\n\r\nexport const changeALLFilterOption = (options: string[], translatedAllOption: string) => {\r\n const optionsArray = [...options];\r\n\r\n for (let i = 0; i < optionsArray.length; i++) {\r\n if (optionsArray[i] === translatedAllOption) {\r\n optionsArray[i] = ALL;\r\n\r\n return optionsArray;\r\n }\r\n if (optionsArray[i] === ALL) {\r\n optionsArray[i] = translatedAllOption;\r\n\r\n return optionsArray;\r\n }\r\n }\r\n\r\n return optionsArray;\r\n};\r\n\r\nexport const updateSelectedOptions = (\r\n updatedSelectedOptions: Models.BM.IExpensesJournalSelectedOptions,\r\n defaultAllOption: string\r\n) => {\r\n Object.keys(updatedSelectedOptions).forEach((key) => {\r\n const value = updatedSelectedOptions[key as keyof IExpensesJournalFilters];\r\n\r\n if (Array.isArray(value)) {\r\n updatedSelectedOptions[key as keyof IExpensesJournalFilters] = changeALLFilterOption(value, defaultAllOption);\r\n }\r\n });\r\n\r\n return updatedSelectedOptions;\r\n};\r\n","import { createBrowserHistory } from 'history';\r\n\r\nconst history = createBrowserHistory();\r\n\r\nexport default history;\r\n","import { ForwardRefRenderFunction, forwardRef, memo, ButtonHTMLAttributes, ReactNode, MouseEvent } from 'react';\r\n\r\nimport Utils from 'shared/shared.utils';\r\n\r\nimport Loader from '../Loader/Loader';\r\n\r\nimport './Button.scss';\r\n\r\nexport type ButtonColor = 'primary' | 'secondary' | 'danger' | 'success' | 'transparent' | 'dark';\r\nexport type ButtonStyleType = 'text' | 'outlined' | 'default';\r\n\r\nexport interface ButtonProps extends ButtonHTMLAttributes {\r\n iconStart?: ReactNode;\r\n iconEnd?: ReactNode;\r\n loading?: boolean;\r\n color?: ButtonColor;\r\n styleType?: ButtonStyleType;\r\n uppercase?: boolean;\r\n}\r\n\r\nconst defaultClassName = 'Deloitte__btn';\r\n\r\nconst getAdditionalClassNames = Utils.makeAdditionalClassNamesGenerator(defaultClassName);\r\n\r\nconst Button: ForwardRefRenderFunction = (\r\n {\r\n type = 'button',\r\n color = 'primary',\r\n styleType = 'default',\r\n disabled: buttonDisabled,\r\n loading,\r\n className,\r\n onClick,\r\n iconStart: buttonIconStart,\r\n iconEnd: buttonIconEnd,\r\n children,\r\n uppercase = false,\r\n ...props\r\n },\r\n ref\r\n) => {\r\n const disabled = buttonDisabled || loading;\r\n const iconStart = loading && !!buttonIconStart ? : buttonIconStart;\r\n const iconEnd = loading && !buttonIconStart && !!buttonIconEnd ? : buttonIconEnd;\r\n const handleClick = (e: MouseEvent): void => {\r\n if (disabled) return;\r\n onClick?.(e);\r\n };\r\n\r\n return (\r\n \r\n {loading && !iconStart && !iconEnd && }\r\n {!!iconStart &&
{iconStart}
}\r\n {children}\r\n {!!iconEnd &&
{iconEnd}
}\r\n \r\n );\r\n};\r\n\r\nexport default memo(forwardRef(Button));\r\n","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgChecked(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n rx: 2,\n fill: \"#007CB0\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 8.5L6.5 11L12 5\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChecked);\nexport default __webpack_public_path__ + \"static/media/checked.4eeb99db429e1f58ce7e83ff971e262b.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgIndeterminate(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n rx: 2,\n fill: \"#007CB0\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 8H12\",\n stroke: \"white\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgIndeterminate);\nexport default __webpack_public_path__ + \"static/media/indeterminate.6c1d816dcbbaeacf9dbda76aed0aefad.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, useRef, ChangeEvent } from 'react';\r\nimport { ReactComponent as CheckedIcon } from '../../assets/svg/checkbox/checked.svg';\r\nimport { ReactComponent as IndeterminateIcon } from '../../assets/svg/checkbox/indeterminate.svg';\r\nimport './FormCheckbox.scss';\r\n\r\ninterface IProps {\r\n id?: string;\r\n checked: boolean;\r\n indeterminate?: boolean;\r\n onChange: (event: ChangeEvent) => void;\r\n label?: string;\r\n className?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nconst FormCheckbox: FC = ({\r\n id = '',\r\n checked = false,\r\n indeterminate = false,\r\n onChange,\r\n label = '',\r\n className = '',\r\n disabled = false,\r\n}) => {\r\n const inputRef = useRef(null);\r\n const formCheckboxClassList = new Set(['FormCheckbox', disabled ? 'FormCheckbox--disabled' : '', className]);\r\n\r\n const handleClickLabel = () => {\r\n if (disabled) return;\r\n if (inputRef.current) {\r\n inputRef.current.click();\r\n }\r\n };\r\n\r\n const handleChange = (e: ChangeEvent) => {\r\n if (disabled) return;\r\n onChange?.(e);\r\n };\r\n\r\n const isCheckedClassName = checked || indeterminate;\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n {label}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FormCheckbox;\r\n","import { MultiViewCalendar } from '@progress/kendo-react-dateinputs';\r\nimport './FormDatePicker.scss';\r\n\r\nconst CustomCalendar: any = (props: any) => {\r\n return ;\r\n};\r\n\r\nexport default CustomCalendar;\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCalendar(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.5 0C12.7761 0 13 0.223858 13 0.5L12.999 2H15.5C15.7761 2 16 2.22386 16 2.5V15.5C16 15.7761 15.7761 16 15.5 16H0.5C0.223858 16 0 15.7761 0 15.5V2.5C0 2.22386 0.223858 2 0.5 2H3V0.5C3 0.223858 3.22386 0 3.5 0C3.77614 0 4 0.223858 4 0.5V2H11.999L12 0.5C12 0.223858 12.2239 0 12.5 0ZM3 2.999L1 3V15H15V3L12.999 2.999L13 4.5C13 4.77614 12.7761 5 12.5 5C12.2239 5 12 4.77614 12 4.5L11.999 2.999H4V4.5C4 4.77614 3.77614 5 3.5 5C3.22386 5 3 4.77614 3 4.5V2.999ZM4 11C4.55228 11 5 11.4477 5 12C5 12.5523 4.55228 13 4 13C3.44772 13 3 12.5523 3 12C3 11.4477 3.44772 11 4 11ZM8 11C8.55229 11 9 11.4477 9 12C9 12.5523 8.55229 13 8 13C7.44772 13 7 12.5523 7 12C7 11.4477 7.44772 11 8 11ZM12 11C12.5523 11 13 11.4477 13 12C13 12.5523 12.5523 13 12 13C11.4477 13 11 12.5523 11 12C11 11.4477 11.4477 11 12 11ZM4 7C4.55228 7 5 7.44772 5 8C5 8.55229 4.55228 9 4 9C3.44772 9 3 8.55229 3 8C3 7.44772 3.44772 7 4 7ZM8 7C8.55229 7 9 7.44772 9 8C9 8.55229 8.55229 9 8 9C7.44772 9 7 8.55229 7 8C7 7.44772 7.44772 7 8 7ZM12 7C12.5523 7 13 7.44772 13 8C13 8.55229 12.5523 9 12 9C11.4477 9 11 8.55229 11 8C11 7.44772 11.4477 7 12 7Z\",\n fill: \"#A7A8AA\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCalendar);\nexport default __webpack_public_path__ + \"static/media/calendar.e1960af502150158b443334b75f1e383.svg\";\nexport { ForwardRef as ReactComponent };","import { FC } from 'react';\r\nimport { ToggleButton, ToggleButtonProps } from '@progress/kendo-react-dateinputs';\r\n\r\nimport { ReactComponent as Calendar } from '../../assets/svg/calendar.svg';\r\n\r\nconst CustomToggleIcon: FC = (props) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CustomToggleIcon;\r\n","import { MultiViewCalendar } from '@progress/kendo-react-dateinputs';\r\nimport './FormDatePicker.scss';\r\n\r\nconst CustomYearCalendar: any = (props: any) => {\r\n return ;\r\n};\r\n\r\nexport default CustomYearCalendar;\r\n","import { FC, useEffect, useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { DatePicker } from '@progress/kendo-react-dateinputs';\r\nimport { FieldRenderProps } from '@progress/kendo-react-form';\r\nimport { IntlProvider, LocalizationProvider, load, loadMessages } from '@progress/kendo-react-intl';\r\nimport likelySubtags from 'cldr-core/supplemental/likelySubtags.json';\r\nimport currencyData from 'cldr-core/supplemental/currencyData.json';\r\nimport weekData from 'cldr-core/supplemental/weekData.json';\r\n\r\nimport { DEFAULT_LOCALE } from 'localization/helpers';\r\nimport LabelText from '../Label';\r\nimport CustomToggleIcon from './CustomToggleIcon';\r\nimport CustomCalendar from './CustomCalendar';\r\nimport CustomYearCalendar from './CustomYearCalendar';\r\nimport './FormDatePicker.scss';\r\n\r\nconst loadTranslations = async (locale: string): Promise => {\r\n const result = await Promise.all([\r\n import(`cldr-numbers-full/main/${locale}/numbers.json`),\r\n import(`cldr-dates-full/main/${locale}/ca-gregorian.json`),\r\n import(`cldr-dates-full/main/${locale}/dateFields.json`),\r\n import(`cldr-dates-full/main/${locale}/timeZoneNames.json`),\r\n ]);\r\n await load(likelySubtags, currencyData, weekData, ...result.map((module) => module.default));\r\n};\r\n\r\nconst FormDatePicker: FC = ({\r\n validationMessage,\r\n label,\r\n isRequiredIcon,\r\n optional,\r\n formatPlaceholder = { month: 'MM', day: 'DD', year: 'YYYY' },\r\n placeholder = 'MM/DD/YYYY',\r\n popupClassName = '',\r\n ...others\r\n}) => {\r\n const { i18n, t } = useTranslation();\r\n const [currentLoadedLocale, setCurrentLoadedLocale] = useState(DEFAULT_LOCALE.id);\r\n\r\n useEffect(() => {\r\n const loadLocales = async () => {\r\n if (i18n.language !== currentLoadedLocale) {\r\n // INFO: datepicker has en-US or en translation by default so do not necessary to load translations for this language\r\n if (i18n.language !== DEFAULT_LOCALE.id) {\r\n try {\r\n await loadTranslations(i18n.language);\r\n } catch {\r\n // INFO: we have en-US like language format so if first load fails - we need to check translations for en only\r\n const langParts = i18n.language.split('-');\r\n if (langParts.length > 1) {\r\n try {\r\n await loadTranslations(langParts[0]);\r\n } catch {\r\n // do nothing\r\n }\r\n }\r\n }\r\n }\r\n const controls = {\r\n datepicker: {\r\n toggleCalendar: t('Common.DatePicker.ToggleCalendarTooltip'),\r\n },\r\n calendar: {\r\n today: t('Common.DatePicker.TodayButton'),\r\n },\r\n };\r\n loadMessages(controls, i18n.language);\r\n setCurrentLoadedLocale(i18n.language);\r\n }\r\n };\r\n loadLocales();\r\n }, [i18n.language, currentLoadedLocale, t]);\r\n\r\n const popupSettings = useMemo(\r\n () => ({\r\n popupClass: `DeloitteDatePicker ${popupClassName}`,\r\n }),\r\n [popupClassName]\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default FormDatePicker;\r\n","import { FC } from 'react';\r\nimport { FieldRenderProps } from '@progress/kendo-react-form';\r\nimport { RadioGroup, RadioGroupChangeEvent, RadioGroupProps } from '@progress/kendo-react-inputs';\r\nimport { Error } from '@progress/kendo-react-labels';\r\nimport LabelText, { ILabelProps } from '../Label';\r\nimport './FormRadioGroup.scss';\r\n\r\ninterface IProps extends Omit {\r\n labelIconStart?: ILabelProps['iconStart'];\r\n labelIconEnd?: ILabelProps['iconEnd'];\r\n}\r\n\r\nconst FormRadioGroup: FC = ({\r\n validationMessage,\r\n label,\r\n isRequiredIcon,\r\n value,\r\n disabled,\r\n onChange,\r\n layout = 'horizontal',\r\n labelIconStart,\r\n labelIconEnd,\r\n className = '',\r\n ...props\r\n}) => {\r\n const handleChange = (e: RadioGroupChangeEvent) => {\r\n if (disabled) return;\r\n onChange?.(props.name ? ({ ...e, target: { ...e.target, name: props.name } } as RadioGroupChangeEvent) : e);\r\n };\r\n\r\n return (\r\n
\r\n {label && (\r\n \r\n )}\r\n \r\n {props.visited && !!value && !!validationMessage && {validationMessage}}\r\n
\r\n );\r\n};\r\n\r\nexport default FormRadioGroup;\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgInfo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8 0C12.4183 0 16 3.58172 16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0ZM8 1C4.13401 1 1 4.13401 1 8C1 11.866 4.13401 15 8 15C11.866 15 15 11.866 15 8C15 4.13401 11.866 1 8 1ZM9 6V11H11V12H6V11H8V7H6V6H9ZM8 3C8.55229 3 9 3.44772 9 4C9 4.55228 8.55229 5 8 5C7.44772 5 7 4.55228 7 4C7 3.44772 7.44772 3 8 3Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfo);\nexport default __webpack_public_path__ + \"static/media/info.7e6029975ea6b2ed4cc23020124fddbe.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, ReactElement, useRef, MouseEvent } from 'react';\r\nimport { Tooltip, TooltipProps } from '@progress/kendo-react-tooltip';\r\nimport { ReactComponent as InfoIcon } from 'assets/svg/info_warning/info.svg';\r\n\r\nimport './IconTooltip.scss';\r\n\r\ninterface IProps {\r\n icon?: ReactElement;\r\n tooltipText?: string;\r\n onClick?: (e: MouseEvent) => void;\r\n usePortal?: boolean;\r\n}\r\n\r\nconst IconTooltip: FC> = ({\r\n icon = ,\r\n tooltipText = '',\r\n anchorElement = 'target',\r\n position = 'top',\r\n openDelay = 100,\r\n className = '',\r\n appendTo,\r\n onClick,\r\n usePortal,\r\n ...restProps\r\n}) => {\r\n const wrapperRef = useRef(null);\r\n const handleClick = (e: MouseEvent) => {\r\n e.stopPropagation();\r\n onClick?.(e);\r\n };\r\n return (\r\n
\r\n \r\n \r\n {icon}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default IconTooltip;\r\n","import { FC, ReactElement } from 'react';\r\nimport { Label } from '@progress/kendo-react-labels';\r\nimport './Label.scss';\r\n\r\nexport interface ILabelProps {\r\n label: string;\r\n optional?: string;\r\n isRequiredIcon?: boolean;\r\n iconStart?: ReactElement;\r\n iconEnd?: ReactElement;\r\n valid?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst LabelText: FC = ({\r\n label,\r\n valid,\r\n optional,\r\n isRequiredIcon = true,\r\n iconStart,\r\n iconEnd,\r\n className = '',\r\n}) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default LabelText;\r\n","import { FC } from 'react';\r\n\r\nimport './Loader.scss';\r\n\r\ninterface IProps {\r\n local?: boolean;\r\n absolute?: boolean;\r\n}\r\n\r\nconst Loader: FC = ({ local, absolute }) => {\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Loader;\r\n","import { FC, useMemo } from 'react';\r\nimport type { GridCellProps } from '@progress/kendo-react-grid';\r\nimport type { ISelected } from 'components/MipTable/MipTable';\r\nimport FormCheckbox from 'components/FormCheckbox/FormCheckbox';\r\n\r\ninterface IProps extends GridCellProps {\r\n selected: ISelected;\r\n setSelected: (param: ISelected) => void;\r\n selectedKey: string;\r\n disabled: boolean;\r\n}\r\n\r\nconst CellCheckbox: FC = ({ selected, setSelected, dataItem, selectedKey, disabled }) => {\r\n const isInList = useMemo(() => selected.keys.includes(dataItem[selectedKey]), [selected.keys, dataItem, selectedKey]);\r\n\r\n const onChangeSelectedHandler = () => {\r\n setSelected({\r\n ...selected,\r\n keys: isInList\r\n ? selected.keys.filter((id) => id !== dataItem[selectedKey])\r\n : [...selected.keys, dataItem[selectedKey]],\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CellCheckbox;\r\n","import type { FC } from 'react';\r\nimport type { GridHeaderCellProps } from '@progress/kendo-react-grid';\r\nimport type { ISelected } from 'components/MipTable/MipTable';\r\nimport FormCheckbox from 'components/FormCheckbox/FormCheckbox';\r\n\r\ninterface IProps extends GridHeaderCellProps {\r\n selected: ISelected;\r\n setSelected: (param: ISelected) => void;\r\n disabled?: boolean;\r\n}\r\n\r\nconst HeaderCellCheckbox: FC = ({ selected, setSelected, disabled }) => {\r\n const onChangeHandler = () => {\r\n setSelected({ keys: [], deleteAll: !selected.deleteAll });\r\n };\r\n\r\n return (\r\n \r\n 0}\r\n onChange={onChangeHandler}\r\n disabled={disabled}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default HeaderCellCheckbox;\r\n","import type { FC } from 'react';\r\nimport type { PagerProps } from '@progress/kendo-react-data-tools';\r\nimport Pagination from '../../Table/Pagination/Pagination';\r\n\r\nconst Pager: FC = ({ skip, take, total, onPageChange }) => {\r\n const currentPage = Math.floor(skip / take);\r\n const startCounterIdx = total ? skip : -1;\r\n const endCounterIdx = total ? Math.min(startCounterIdx + take, total) - 1 : -1;\r\n const totalPages = Math.ceil((total || 0) / take);\r\n const previousEnabled = currentPage > 0;\r\n const nextEnabled = currentPage + 1 < totalPages;\r\n\r\n const setPage = (page: number) => {\r\n onPageChange?.({\r\n target: {} as any,\r\n skip: (page > totalPages - 1 ? totalPages - 1 : page) * take,\r\n take,\r\n syntheticEvent: {} as any,\r\n nativeEvent: {} as any,\r\n });\r\n };\r\n const setFirstPage = () => {\r\n setPage(0);\r\n };\r\n const setLastPage = () => {\r\n setPage(totalPages - 1);\r\n };\r\n const setNextPage = () => {\r\n setPage(currentPage + 1);\r\n };\r\n const setPreviousPage = () => {\r\n setPage(currentPage - 1);\r\n };\r\n const handleChangePageSize = (size: number) => {\r\n onPageChange?.({\r\n target: {} as any,\r\n skip: 0,\r\n take: size,\r\n syntheticEvent: {} as any,\r\n nativeEvent: {} as any,\r\n });\r\n };\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default Pager;\r\n","// @ts-nocheck\r\nimport {\r\n ChangeEvent,\r\n FC,\r\n ReactNode,\r\n useEffect,\r\n useMemo,\r\n useState,\r\n useRef,\r\n cloneElement,\r\n RefObject,\r\n useCallback,\r\n} from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { orderBy, SortDescriptor } from '@progress/kendo-data-query';\r\nimport {\r\n Grid,\r\n GridColumn,\r\n GridNoRecords,\r\n GridPageChangeEvent,\r\n GridProps,\r\n GridSortChangeEvent,\r\n} from '@progress/kendo-react-grid';\r\nimport { Tooltip } from '@progress/kendo-react-tooltip';\r\nimport { ReactComponent as SearchIcon } from 'assets/svg/search.svg';\r\nimport useIsMounted from 'shared/hooks/useIsMounted';\r\nimport Loader from 'components/Loader/Loader';\r\nimport CellCheckbox from 'components/MipTable/cells/CellCheckbox/CellCheckbox';\r\nimport HeaderCellCheckbox from 'components/MipTable/headerCells/HeaderCellCheckbox/HeaderCellCheckbox';\r\nimport Input from 'components/vendor/Input';\r\nimport type { ITableDataInfoRequest } from 'shared/models/models.bl';\r\n\r\nimport Pager from './Pager';\r\n\r\nimport './MipTable.scss';\r\n\r\nexport interface ISelected {\r\n keys: string[];\r\n deleteAll: boolean;\r\n}\r\n\r\ninterface ICustomTableRenderProps {\r\n selected: ISelected;\r\n totalRows: number;\r\n resetTable: () => void;\r\n updateTable: () => void;\r\n}\r\n\r\nexport interface ISort {\r\n field: string;\r\n dir: string;\r\n}\r\n\r\nconst getArrayOrNull = (data: any): any[] | null => (Array.isArray(data) ? data : null);\r\n\r\ninterface IProps extends GridProps {\r\n showSearch?: boolean;\r\n backendCall?: (data: ITableDataInfoRequest) => Promise;\r\n initialSort?: ISort[];\r\n isSelectable?: boolean;\r\n customTableRender?: (props: ICustomTableRenderProps) => ReactNode;\r\n selectedKey?: string;\r\n data?: any[];\r\n total?: number;\r\n onTableViewParamsChange?: (data: ITableDataInfoRequest) => void;\r\n dataLoading?: boolean;\r\n searchPlaceholder?: string;\r\n optionalParams?: any;\r\n updateDataTrigger?: string;\r\n selectionDisabled?: boolean;\r\n allDataFetched?: (data: any[]) => void;\r\n updateRowsByExternalParams?: (data: any) => any;\r\n}\r\n\r\nconst defaultTableWidth = { width: '100%' };\r\nconst defaultPagingState = { pageSizes: [5, 10, 25, 50, 100] };\r\nconst defaultSort: Array = [{ field: '', dir: 'asc' }];\r\nconst initialPageState = { skip: 0, take: 5 };\r\nconst initialSelected = { keys: [], deleteAll: false };\r\nconst checkboxColWidth = 40;\r\n\r\nconst getWidthData = (\r\n gridRef: RefObject\r\n): {\r\n tableElement: HTMLTableElement | null;\r\n parentElement: HTMLDivElement | null;\r\n tableWidth: number;\r\n parentWidth: number;\r\n needResizeCols: boolean;\r\n} => {\r\n const parentElement: HTMLDivElement | null = gridRef.current?.element?.firstChild?.firstChild || null;\r\n const tableElement: HTMLTableElement | null = parentElement?.firstChild || null;\r\n const tableWidth = tableElement?.clientWidth || 0;\r\n const parentWidth = parentElement?.clientWidth || 0;\r\n return {\r\n tableElement,\r\n parentElement,\r\n tableWidth,\r\n parentWidth,\r\n needResizeCols: tableWidth < parentWidth,\r\n };\r\n};\r\n\r\nconst MipTable: FC = ({\r\n showSearch = false,\r\n backendCall,\r\n children,\r\n data = [],\r\n allDataFetched,\r\n total: totalDataQTY,\r\n dataLoading = false,\r\n initialSort = defaultSort,\r\n isSelectable = false,\r\n customTableRender = null,\r\n selectedKey = 'id',\r\n searchPlaceholder = 'Common.Table.Search.Placeholder',\r\n optionalParams,\r\n updateDataTrigger,\r\n onTableViewParamsChange,\r\n selectionDisabled = false,\r\n updateRowsByExternalParams,\r\n ...rest\r\n}) => {\r\n const { t } = useTranslation();\r\n const gridRef = useRef(null);\r\n const gridContainer = useRef(null);\r\n const searchTimeoutRef = useRef>();\r\n const firstMountRef = useRef(true);\r\n const [{ sort, page, searchKeyWord }, setTableState] = useState({\r\n sort: initialSort,\r\n page: initialPageState,\r\n searchKeyWord: '',\r\n });\r\n const [serverData, setServerData] = useState();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [selected, setSelected] = useState(initialSelected);\r\n const [resizeColumns, setResizeColumns] = useState(0);\r\n const isMounted = useIsMounted();\r\n const onSortChangeHandler = (e: GridSortChangeEvent) => {\r\n setTableState((prev) => ({ ...prev, sort: e.sort }));\r\n };\r\n\r\n const onPageChangeHandler = (e: GridPageChangeEvent) => {\r\n setTableState((prev) => ({ ...prev, page: e.page }));\r\n };\r\n\r\n const onSearchChangeHandler = useCallback((e: ChangeEvent) => {\r\n if (searchTimeoutRef.current) {\r\n clearTimeout(searchTimeoutRef.current);\r\n }\r\n searchTimeoutRef.current = setTimeout(() => {\r\n setTableState((prev) => ({ ...prev, searchKeyWord: e.value, page: { take: prev.page.take, skip: 0 } }));\r\n }, 500);\r\n }, []);\r\n\r\n const columns = useMemo(() => {\r\n const columnName = children.props.children;\r\n let cols = [...columnName];\r\n\r\n if (data.length) {\r\n for (let i = 1; i < Object.keys(data[0]).length; i++) {\r\n if (!cols.some((element) => element.props.field === Object.keys(data[0])[i])) {\r\n cols.push();\r\n }\r\n }\r\n }\r\n\r\n let colsTotalWidth = isSelectable ? checkboxColWidth : 0;\r\n const { parentWidth } = getWidthData(gridRef);\r\n const neededWidth = parentWidth < 1 ? 0 : parentWidth - 1;\r\n\r\n const initialWidths = cols.map((child) => {\r\n const width = (child.props.width as number) || 100;\r\n colsTotalWidth += width;\r\n return width;\r\n });\r\n\r\n const proportions: number[] | null =\r\n neededWidth > colsTotalWidth\r\n ? initialWidths.map((width) => {\r\n return width / colsTotalWidth;\r\n })\r\n : null;\r\n const colsLength = cols.length;\r\n const getWidth = (idx: number, minWidth = 100): number => {\r\n return Math.floor(proportions ? neededWidth * proportions[idx] : Math.max(neededWidth / colsLength, minWidth));\r\n };\r\n\r\n cols = cols.map((child, idx) => {\r\n return cloneElement(child, {\r\n ...child.props,\r\n width: getWidth(idx, child.props.width),\r\n key: child.props.key || `clonedCol-${idx}`,\r\n });\r\n });\r\n\r\n return cols;\r\n }, [data, resizeColumns, isSelectable]);\r\n\r\n useEffect(() => {\r\n let timeout: ReturnType | null = null;\r\n const { parentElement } = getWidthData(gridRef);\r\n\r\n const resizeThrottler = () => {\r\n if (!timeout)\r\n timeout = setTimeout(() => {\r\n timeout = null;\r\n setResizeColumns((prev) => prev + 1);\r\n }, 66);\r\n };\r\n\r\n const observer: ResizeObserver | null = parentElement\r\n ? new ResizeObserver(resizeThrottler).observe(parentElement)\r\n : null;\r\n\r\n return () => {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n }\r\n if (searchTimeoutRef.current) {\r\n clearTimeout(searchTimeoutRef.current);\r\n }\r\n if (parentElement) {\r\n observer?.unobserve(parentElement);\r\n }\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n // INFO: this is necessary to prevent message horizontal scrolling with whole table\r\n if (gridRef.current?.element) {\r\n if (!gridContainer.current) {\r\n gridContainer.current = gridRef.current.element.querySelector('.k-grid-container');\r\n }\r\n if (gridContainer.current) {\r\n gridContainer.current.setAttribute('data-noitemsmessage', t('Common.Table.Message.NothingToShow'));\r\n }\r\n }\r\n }, [t]);\r\n\r\n const serverRequest = async () => {\r\n if (backendCall) {\r\n setIsLoading(true);\r\n const response = await backendCall({\r\n orderBy: sort[0]?.field || '',\r\n asc: sort[0]?.dir === 'asc',\r\n pageNumber: page.skip / page.take + 1,\r\n pageSize: page.take,\r\n searchBy: searchKeyWord || '',\r\n ...optionalParams,\r\n });\r\n if (!searchKeyWord && allDataFetched) {\r\n allDataFetched(\r\n getArrayOrNull(response?.data) ||\r\n getArrayOrNull(response?.data?.tableData) ||\r\n getArrayOrNull(response?.data?.data) ||\r\n []\r\n );\r\n }\r\n isMounted(() => {\r\n setServerData(response);\r\n setIsLoading(false);\r\n });\r\n }\r\n };\r\n\r\n const resetTable = () => {\r\n isMounted(() => {\r\n setSelected(initialSelected);\r\n\r\n if (page === initialPageState && sort === initialSort && searchKeyWord === '') {\r\n serverRequest();\r\n\r\n return;\r\n }\r\n\r\n setTableState({ sort: initialSort, page: initialPageState, searchKeyWord: '' });\r\n });\r\n };\r\n\r\n const updateTable = async () => {\r\n const totalCount = serverData?.data?.totalCount;\r\n const selectedCount = selected?.keys?.length;\r\n\r\n if (totalCount && selectedCount !== undefined && selected.deleteAll !== undefined) {\r\n setIsLoading(true);\r\n const itemsCount = selected.deleteAll ? selectedCount : totalCount - selectedCount;\r\n const maxPage = itemsCount === 0 ? 1 : Math.floor(itemsCount / page.take) + Number(!!(itemsCount % page.take));\r\n const currentPage = page.skip / page.take + 1;\r\n const pageNumber = currentPage > maxPage ? maxPage : currentPage;\r\n const response = await backendCall({\r\n orderBy: sort[0]?.field || '',\r\n asc: sort[0]?.dir === 'asc',\r\n pageNumber,\r\n pageSize: page.take,\r\n searchBy: searchKeyWord || '',\r\n ...optionalParams,\r\n });\r\n\r\n if (!searchKeyWord && allDataFetched) {\r\n allDataFetched(\r\n getArrayOrNull(response?.data) ||\r\n getArrayOrNull(response?.data?.tableData) ||\r\n getArrayOrNull(response?.data?.data) ||\r\n []\r\n );\r\n }\r\n\r\n isMounted(() => {\r\n setSelected(initialSelected);\r\n setServerData(response);\r\n setIsLoading(false);\r\n });\r\n }\r\n };\r\n\r\n useEffect(async () => {\r\n if (!firstMountRef.current) {\r\n firstMountRef.current = false;\r\n if (!serverRequest)\r\n onTableViewParamsChange?.({\r\n orderBy: sort[0]?.field || '',\r\n asc: sort[0]?.dir === 'asc',\r\n pageNumber: page.skip / page.take + 1,\r\n pageSize: page.take,\r\n searchBy: searchKeyWord || '',\r\n optionalParams,\r\n });\r\n }\r\n }, [sort, page, searchKeyWord, optionalParams]);\r\n\r\n useEffect(async () => {\r\n await serverRequest();\r\n }, [sort, page, searchKeyWord, updateDataTrigger, optionalParams]);\r\n\r\n useEffect(() => {\r\n if (updateRowsByExternalParams && serverData) {\r\n setServerData((prevRows) => {\r\n return updateRowsByExternalParams(prevRows);\r\n });\r\n }\r\n }, [updateRowsByExternalParams]);\r\n\r\n const localData = backendCall\r\n ? serverData?.data?.tableData\r\n : orderBy(data, sort).slice(page.skip, page.take + page.skip);\r\n\r\n const totalRows = backendCall ? serverData?.data?.totalCount || 0 : totalDataQTY ?? data.length;\r\n const translatedSearchPlaceholder = t(searchPlaceholder);\r\n\r\n return (\r\n
\r\n {(showSearch || !!customTableRender) && (\r\n
\r\n
\r\n {showSearch && (\r\n
\r\n \r\n }\r\n placeholder={translatedSearchPlaceholder}\r\n title={translatedSearchPlaceholder}\r\n />\r\n \r\n
\r\n )}\r\n {!!customTableRender && (\r\n
\r\n {customTableRender({ selected, totalRows, resetTable, updateTable })}\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n \r\n \r\n {/* INFO: This span is display none. Reason - scrolls with table */}\r\n {/* INFO: Needed just as placeholder for message from data attribute */}\r\n \r\n \r\n {isSelectable && (\r\n (\r\n \r\n )}\r\n headerCell={(props) => (\r\n \r\n )}\r\n headerClassName=\"notSortable\"\r\n />\r\n )}\r\n {columns}\r\n \r\n {(backendCall ? isLoading : dataLoading) && }\r\n
\r\n );\r\n};\r\n\r\nexport default MipTable;\r\n","import { FC } from 'react';\r\nimport { GridCellProps } from '@progress/kendo-react-grid';\r\nimport { useInternationalization } from '@progress/kendo-react-intl';\r\nimport { checkIsDate } from 'shared/utils/dateFormatter';\r\n\r\ninterface IProps extends GridCellProps {\r\n format?: string;\r\n}\r\n\r\nconst CellDateFormat: FC = ({ dataItem, field, format = 'MMM d, yyyy' }) => {\r\n const intl = useInternationalization();\r\n const value = field ? dataItem[field] : '';\r\n const isDate = checkIsDate(value);\r\n\r\n return {isDate ? intl.formatDate(new Date(value), format) : value ?? ''};\r\n};\r\n\r\nexport default CellDateFormat;\r\n","import { GridCellProps } from '@progress/kendo-react-grid';\r\nimport { FC } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport './CellEnableLink.scss';\r\n\r\ninterface IProps extends GridCellProps {\r\n onClick: (data: GridCellProps['dataItem']) => void;\r\n}\r\n\r\nconst CellEnableLink: FC = ({ dataItem, field, onClick }) => {\r\n const { t } = useTranslation();\r\n const value = field ? dataItem[field] : '';\r\n const onClickHandler = () => {\r\n onClick(dataItem);\r\n };\r\n\r\n return (\r\n \r\n {dataItem[field || ''] || t('PerformanceHurdles.Table.Update')}\r\n \r\n );\r\n};\r\n\r\nexport default CellEnableLink;\r\n","import { FC } from 'react';\r\nimport Button, { ButtonColor, ButtonStyleType } from '../Button';\r\n\r\nexport interface IModalFooterProps {\r\n cancelBtnTitle?: string;\r\n confirmBtnTitle?: string;\r\n confirmDisabled?: boolean;\r\n confirmLoading?: boolean;\r\n cancelDisabled?: boolean;\r\n cancelBtnColor?: ButtonColor;\r\n cancelBtnStyleType?: ButtonStyleType;\r\n confirmBtnColor?: ButtonColor;\r\n confirmBtnStyleType?: ButtonStyleType;\r\n onCancel?: () => void;\r\n onConfirm?: () => void;\r\n}\r\n\r\nconst ModalFooter: FC = ({\r\n onCancel,\r\n onConfirm,\r\n cancelBtnTitle,\r\n confirmBtnTitle,\r\n confirmDisabled,\r\n confirmLoading,\r\n cancelDisabled,\r\n cancelBtnColor,\r\n cancelBtnStyleType,\r\n confirmBtnColor,\r\n confirmBtnStyleType,\r\n children,\r\n}) => {\r\n if (!onCancel && !onConfirm) {\r\n return null;\r\n }\r\n return (\r\n
\r\n {children}\r\n {!!onCancel && (\r\n \r\n {cancelBtnTitle}\r\n \r\n )}\r\n {!!onConfirm && (\r\n \r\n {confirmBtnTitle}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default ModalFooter;\r\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var DialogTitleBar = function (_a) {\n var children = _a.children, onCloseButtonClick = _a.onCloseButtonClick, id = _a.id, closeIcon = _a.closeIcon;\n return (React.createElement(\"div\", { className: \"k-window-titlebar k-dialog-titlebar k-header\", id: id },\n React.createElement(\"div\", { className: \"k-window-title k-dialog-title\" }, children),\n React.createElement(\"div\", { className: \"k-window-actions k-dialog-actions\" }, closeIcon &&\n React.createElement(\"a\", { href: \"#\", role: \"button\", \"aria-label\": \"Close\", onClick: onCloseButtonClick, className: \"k-button k-flat k-button-icon k-window-action k-dialog-action k-dialog-close\" },\n React.createElement(\"span\", { className: \"k-icon k-i-x\" })))));\n};\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * Returns the action bar of the Dialog.\n *\n * @returns React.ReactElement\n */\nexport var DialogActionsBar = function (props) {\n var _a = props.layout, layout = _a === void 0 ? defaultProps.layout : _a, children = props.children;\n var wrapperClasses = classNames('k-dialog-buttongroup', 'k-actions', 'k-hstack', {\n 'k-justify-content-start': layout === 'start',\n 'k-justify-content-center': layout === 'center',\n 'k-justify-content-end': layout === 'end',\n 'k-justify-content-stretch': layout === 'stretched'\n });\n return (React.createElement(\"div\", { className: wrapperClasses }, children));\n};\nDialogActionsBar.propTypes = {\n children: PropTypes.any,\n layout: PropTypes.oneOf(['start', 'center', 'end', 'stretched'])\n};\nvar defaultProps = {\n layout: 'stretched'\n};\n","export var windowStage;\n(function (windowStage) {\n windowStage[\"DEFAULT\"] = \"DEFAULT\";\n windowStage[\"FULLSCREEN\"] = \"FULLSCREEN\";\n windowStage[\"MINIMIZED\"] = \"MINIMIZED\";\n})(windowStage || (windowStage = {}));\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-dialogs',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584548,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport * as PropTypes from 'prop-types';\nimport { DialogTitleBar } from './DialogTitleBar';\nimport { DialogActionsBar } from './DialogActionsBar';\nimport { guid, dispatchEvent, Keys } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\n// tslint:enable:max-line-length\nvar Dialog = /** @class */ (function (_super) {\n __extends(Dialog, _super);\n function Dialog(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.DialogRef = React.createRef();\n _this.titleId = _this.generateTitleId();\n _this.handleCloseDialog = function (event) {\n event.preventDefault();\n dispatchEvent(_this.props.onClose, event, _this, undefined);\n };\n _this.handleKeyDown = function (event) {\n if (event.keyCode === Keys.esc && _this.props.onClose) {\n event.preventDefault();\n _this.handleCloseDialog(event);\n }\n var kDialog = _this.DialogRef.current;\n if (kDialog && (event.keyCode === Keys.tab)) {\n var focusableElements = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n var focusableContent = kDialog.querySelectorAll(focusableElements);\n var firstFocusableElement = focusableContent[0];\n var lastFocusableElement = focusableContent[focusableContent.length - 1];\n if (event.shiftKey) {\n if (document.activeElement === firstFocusableElement) {\n lastFocusableElement.focus();\n event.preventDefault();\n }\n }\n else {\n if (document.activeElement === lastFocusableElement) {\n firstFocusableElement.focus();\n event.preventDefault();\n }\n }\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n Dialog.prototype.componentDidMount = function () {\n if (this.DialogRef.current && this.props.autoFocus) {\n this.DialogRef.current.focus();\n }\n };\n /**\n * @hidden\n */\n Dialog.prototype.render = function () {\n var id = this.props.id !== undefined ? this.props.id : this.titleId;\n var _a = this.props, title = _a.title, width = _a.width, height = _a.height, children = _a.children, minWidth = _a.minWidth, dir = _a.dir, style = _a.style, contentStyle = _a.contentStyle;\n var elementsArray = React.Children.toArray(children);\n var content = this.getContent(elementsArray);\n var actions = this.getActionBar(elementsArray);\n var aria = title ? {\n 'aria-labelledby': id\n } : null;\n var closeIcon = this.props.closeIcon !== undefined ? this.props.closeIcon : true;\n var output = (React.createElement(\"div\", { className: 'k-dialog-wrapper' + (this.props.className ? ' ' + this.props.className : ''), onKeyDown: this.handleKeyDown, tabIndex: 0, dir: dir, style: style, ref: this.DialogRef },\n React.createElement(\"div\", { className: \"k-overlay\" }),\n React.createElement(\"div\", __assign({}, aria, { className: \"k-widget k-window k-dialog\", role: \"dialog\", style: { width: width, height: height, minWidth: minWidth } }),\n this.props.title &&\n React.createElement(DialogTitleBar, { closeIcon: closeIcon, onCloseButtonClick: this.handleCloseDialog, id: id }, title),\n React.createElement(\"div\", { className: \"k-window-content k-dialog-content\", style: contentStyle }, content),\n actions)));\n return this.props.appendTo ? createPortal(output, this.props.appendTo) : output;\n };\n Dialog.prototype.getActionBar = function (children) {\n return children.filter(function (child) { return child && child.type === DialogActionsBar; });\n };\n Dialog.prototype.getContent = function (children) {\n return children.filter(function (child) {\n return child && child.type !== DialogActionsBar;\n });\n };\n Dialog.prototype.generateTitleId = function () {\n return 'dialog-title' + guid();\n };\n /**\n * @hidden\n */\n Dialog.propTypes = {\n title: PropTypes.any,\n id: PropTypes.string,\n dir: PropTypes.string,\n style: PropTypes.object,\n closeIcon: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n minWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n autoFocus: PropTypes.bool\n };\n /**\n * @hidden\n */\n Dialog.defaultProps = {\n autoFocus: false\n };\n return Dialog;\n}(React.Component));\nexport { Dialog };\n","var __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};\nimport * as React from 'react';\nimport { windowStage } from './StageEnum';\n/**\n * @hidden\n */\nvar WindowTitleBarComponent = function (props) {\n var children = props.children, onCloseButtonClick = props.onCloseButtonClick, onMinimizeButtonClick = props.onMinimizeButtonClick, onFullScreenButtonClick = props.onFullScreenButtonClick, onRestoreButtonClick = props.onRestoreButtonClick, onDoubleClick = props.onDoubleClick, stage = props.stage, forwardedRef = props.forwardedRef;\n var minimizeButtonRender = props.minimizeButton ?\n React.createElement(props.minimizeButton, { onClick: onMinimizeButtonClick, stage: stage }) :\n (React.createElement(\"button\", { className: \"k-button-icon k-button k-flat\", onClick: onMinimizeButtonClick },\n React.createElement(\"span\", { className: \"k-icon k-i-window-minimize\", role: \"presentation\" })));\n var maximizeButtonRender = props.maximizeButton ?\n React.createElement(props.maximizeButton, { onClick: onFullScreenButtonClick, stage: stage }) :\n (React.createElement(\"button\", { className: \"k-button-icon k-button k-flat\", onClick: onFullScreenButtonClick },\n React.createElement(\"span\", { className: \"k-icon k-i-window-maximize\", role: \"presentation\" })));\n var restoreButtonRender = props.restoreButton ?\n React.createElement(props.restoreButton, { onClick: onRestoreButtonClick, stage: stage }) :\n (React.createElement(\"button\", { className: \"k-button-icon k-button k-flat\", onClick: onRestoreButtonClick },\n React.createElement(\"span\", { className: \"k-icon k-i-window-restore\", role: \"presentation\" })));\n var closeButtonRender = props.closeButton ?\n React.createElement(props.closeButton, { onClick: onCloseButtonClick, stage: stage }) :\n (React.createElement(\"button\", { className: \"k-button-icon k-button k-flat\", onClick: onCloseButtonClick },\n React.createElement(\"span\", { className: \"k-icon k-i-close\", role: \"presentation\" })));\n return (React.createElement(\"div\", { className: \"k-window-titlebar k-dialog-titlebar\", style: { touchAction: 'none' }, ref: forwardedRef, onDoubleClick: onDoubleClick },\n React.createElement(\"div\", { className: \"k-window-title\" }, children ? children : ''),\n React.createElement(\"div\", { className: \"k-window-actions\" },\n (stage === windowStage.DEFAULT) && minimizeButtonRender,\n (stage === windowStage.DEFAULT) && maximizeButtonRender,\n (stage !== windowStage.DEFAULT) && restoreButtonRender,\n closeButtonRender)));\n};\n/**\n * @hidden\n */\nexport var WindowTitleBar = React.forwardRef(function (props, ref) { return (React.createElement(WindowTitleBarComponent, __assign({}, props, { forwardedRef: ref }))); });\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Draggable } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar keys = ['n', 'e', 's', 'w', 'se', 'sw', 'ne', 'nw'];\n/**\n * @hidden\n */\nvar ResizeHandlers = /** @class */ (function (_super) {\n __extends(ResizeHandlers, _super);\n function ResizeHandlers() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ResizeHandlers.prototype.render = function () {\n var _this = this;\n return (React.createElement(\"div\", null,\n \" \",\n keys.map(function (key, index) {\n return (React.createElement(Draggable, { key: index, onDrag: function (data) {\n var event = data.event;\n event.originalEvent.preventDefault();\n _this.props.onResize(event, { end: false, direction: key });\n }, onRelease: function (data) {\n var event = data.event;\n event.originalEvent.preventDefault();\n _this.props.onResize(event, { end: true, direction: key });\n } },\n React.createElement(\"div\", { className: 'k-resize-handle k-resize-' + key, style: { display: 'block', touchAction: 'none' } })));\n })));\n };\n return ResizeHandlers;\n}(React.Component));\nexport { ResizeHandlers };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * @hidden\n */\nvar MiddleLayerOptimization = /** @class */ (function (_super) {\n __extends(MiddleLayerOptimization, _super);\n function MiddleLayerOptimization() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MiddleLayerOptimization.prototype.shouldComponentUpdate = function (nextProps) {\n return nextProps.shouldUpdateOnDrag || !nextProps.isDragging;\n };\n MiddleLayerOptimization.prototype.render = function () {\n return this.props.children;\n };\n return MiddleLayerOptimization;\n}(React.Component));\nexport { MiddleLayerOptimization };\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * Returns the action bar of the Window.\n *\n * @returns React.ReactElement\n */\nexport var WindowActionsBar = function (props) {\n var _a = props.layout, layout = _a === void 0 ? defaultProps.layout : _a, children = props.children;\n var wrapperClasses = classNames('k-window-buttongroup', 'k-actions', 'k-hstack', {\n 'k-justify-content-start': layout === 'start',\n 'k-justify-content-center': layout === 'center',\n 'k-justify-content-end': layout === 'end',\n 'k-justify-content-stretch': layout === 'stretched'\n });\n return (React.createElement(\"div\", { className: wrapperClasses }, children));\n};\nWindowActionsBar.propTypes = {\n children: PropTypes.any,\n layout: PropTypes.oneOf(['start', 'center', 'end', 'stretched'])\n};\nvar defaultProps = {\n layout: 'end'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as PropTypes from 'prop-types';\nimport { WindowTitleBar } from './WindowTitlebar';\nimport { dispatchEvent, Keys, classNames } from '@progress/kendo-react-common';\nimport { Draggable } from '@progress/kendo-react-common';\nimport { ResizeHandlers } from './WindowResizeHandlers';\nimport { MiddleLayerOptimization } from './MiddleLayerOptimization';\nimport { windowStage } from './StageEnum';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nimport { WindowActionsBar } from './WindowActionsBar';\nvar DEFAULT_WIDTH = 300;\nvar DEFAULT_HEIGHT = 300;\nvar DEFAULT_MIN_WIDTH = 120;\nvar DEFAULT_MIN_HEIGHT = 100;\nvar DEFAULT_STEP = 5;\nvar Window = /** @class */ (function (_super) {\n __extends(Window, _super);\n function Window(props) {\n var _this = _super.call(this, props) || this;\n _this.offSetCoordinates = { x: 0, y: 0 };\n /**\n * @hidden\n */\n _this.onPress = function (data) {\n var e = data.event;\n _this.windowCoordinatesState.differenceLeft = e.pageX - _this.left;\n _this.windowCoordinatesState.differenceTop = e.pageY - _this.top;\n };\n /**\n * @hidden\n */\n _this.onDrag = function (data) {\n var e = data.event;\n e.originalEvent.preventDefault();\n if (_this.windowStage !== windowStage.FULLSCREEN && _this.props.draggable) {\n _this.setState({\n top: Math.max(e.pageY - _this.windowCoordinatesState.differenceTop, 0),\n left: e.pageX - _this.windowCoordinatesState.differenceLeft,\n isDragging: true\n });\n if (_this.props.onMove) {\n // eslint-disable-next-line max-len\n _this.dispatchMoveEvent(_this.props.onMove, e, true, false);\n }\n }\n };\n /**\n * @hidden\n */\n _this.onRelease = function (data) {\n var e = data.event;\n if (_this.windowStage !== windowStage.FULLSCREEN && _this.props.draggable) {\n if (_this.props.onMove) {\n _this.dispatchMoveEvent(_this.props.onMove, e, true, true);\n }\n }\n _this.setState({\n isDragging: false\n });\n };\n // Keyboard navigation\n _this.handleKeyDown = function (event) {\n if (event.target !== event.currentTarget) {\n return;\n }\n var minWidth = _this.props.minWidth || DEFAULT_MIN_WIDTH;\n var minHeight = _this.props.minHeight || DEFAULT_MIN_HEIGHT;\n if (event.ctrlKey && _this.props.resizable) {\n switch (event.keyCode) {\n case Keys.up:\n event.preventDefault();\n if (minHeight <= (_this.height - DEFAULT_STEP)) {\n _this.setState({ height: _this.height - DEFAULT_STEP });\n }\n break;\n case Keys.down:\n event.preventDefault();\n _this.setState({ height: _this.height + DEFAULT_STEP });\n break;\n case Keys.left:\n if (minWidth <= (_this.width - DEFAULT_STEP)) {\n _this.setState({ width: _this.width - DEFAULT_STEP });\n }\n break;\n case Keys.right:\n _this.setState({ width: _this.width + DEFAULT_STEP });\n break;\n default: return;\n }\n _this.dispatchMoveEvent(_this.props.onResize, event, false, undefined);\n return;\n }\n if (event.altKey) {\n switch (event.keyCode) {\n case Keys.up:\n if (_this.windowStage === windowStage.MINIMIZED) {\n _this.handleRestore(event);\n dispatchEvent(_this.props.onStageChange, event, _this, { state: windowStage.DEFAULT });\n }\n else if (_this.windowStage === windowStage.DEFAULT) {\n _this.handleFullscreen(event);\n dispatchEvent(_this.props.onStageChange, event, _this, { state: windowStage.FULLSCREEN });\n }\n break;\n case Keys.down:\n if (_this.windowStage === windowStage.FULLSCREEN) {\n _this.handleRestore(event);\n dispatchEvent(_this.props.onStageChange, event, _this, { state: windowStage.DEFAULT });\n }\n else if (_this.windowStage === windowStage.DEFAULT) {\n _this.handleMinimize(event);\n dispatchEvent(_this.props.onStageChange, event, _this, { state: windowStage.MINIMIZED });\n }\n break;\n default:\n }\n return;\n }\n if (!event.ctrlKey) {\n switch (event.keyCode) {\n case Keys.esc:\n if (_this.props.onClose) {\n _this.handleCloseWindow(event);\n }\n return;\n case Keys.up:\n _this.setState({ top: _this.state.top - DEFAULT_STEP });\n break;\n case Keys.down:\n _this.setState({ top: _this.state.top + DEFAULT_STEP });\n break;\n case Keys.left:\n _this.setState({ left: _this.state.left - DEFAULT_STEP });\n break;\n case Keys.right:\n _this.setState({ left: _this.state.left + DEFAULT_STEP });\n break;\n default: return;\n }\n }\n _this.dispatchMoveEvent(_this.props.onMove, event, false, undefined);\n };\n // Get initial coordinates of the Window\n _this.getInitialTop = function () {\n if (_this.props.top !== undefined) {\n return _this.props.top;\n }\n if (_this.props.initialTop !== undefined) {\n return _this.props.initialTop;\n }\n var height = DEFAULT_HEIGHT;\n if (_this.props.height !== undefined) {\n height = _this.props.height;\n }\n else if (_this.props.initialHeight !== undefined) {\n height = _this.props.initialHeight;\n }\n if (_this.props.appendTo) {\n return (_this.props.appendTo.offsetHeight / 2) - (height / 2);\n }\n return (window.innerHeight / 2) - (height / 2);\n };\n _this.getInitialLeft = function () {\n if (_this.props.left !== undefined) {\n return _this.props.left;\n }\n if (_this.props.initialLeft !== undefined) {\n return _this.props.initialLeft;\n }\n var width = DEFAULT_WIDTH;\n if (_this.props.width !== undefined) {\n width = _this.props.width;\n }\n else if (_this.props.initialWidth !== undefined) {\n width = _this.props.initialWidth;\n }\n if (_this.props.appendTo) {\n return (_this.props.appendTo.offsetWidth / 2) - (width / 2);\n }\n return (window.innerWidth / 2) - (width / 2);\n };\n _this.getInitialWidth = function () {\n var width = DEFAULT_WIDTH;\n if (_this.props.width !== undefined) {\n width = _this.props.width;\n }\n else if (_this.props.initialWidth !== undefined) {\n width = _this.props.initialWidth;\n }\n return width;\n };\n _this.getInitialHeight = function () {\n var height = DEFAULT_HEIGHT;\n if (_this.props.height !== undefined) {\n height = _this.props.height;\n }\n else if (_this.props.initialHeight !== undefined) {\n height = _this.props.initialHeight;\n }\n return height;\n };\n // Handle actions\n _this.handleMinimize = function (event) {\n event.preventDefault();\n _this.windowCoordinatesState.leftBeforeAction = _this.left;\n _this.windowCoordinatesState.topBeforeAction = _this.top;\n _this.windowCoordinatesState.widthBeforeAction = _this.width;\n _this.windowCoordinatesState.heightBeforeAction = _this.height;\n _this.setState({\n stage: windowStage.MINIMIZED,\n height: 0\n });\n dispatchEvent(_this.props.onStageChange, event, _this, { state: windowStage.MINIMIZED });\n };\n _this.handleFullscreen = function (event) {\n event.preventDefault();\n _this.windowCoordinatesState.leftBeforeAction = _this.left;\n _this.windowCoordinatesState.topBeforeAction = _this.top;\n _this.windowCoordinatesState.widthBeforeAction = _this.width;\n _this.windowCoordinatesState.heightBeforeAction = _this.height;\n _this.setState({\n left: 0,\n top: 0,\n width: _this.props.appendTo ? _this.props.appendTo.offsetWidth : window.innerWidth,\n height: _this.props.appendTo ? _this.props.appendTo.offsetHeight : window.innerHeight,\n stage: windowStage.FULLSCREEN\n });\n dispatchEvent(_this.props.onStageChange, event, _this, { state: windowStage.FULLSCREEN });\n };\n _this.handleRestore = function (event) {\n event.preventDefault();\n if (_this.windowStage === windowStage.FULLSCREEN) {\n _this.setState({\n stage: windowStage.DEFAULT,\n left: _this.windowCoordinatesState.leftBeforeAction,\n top: _this.windowCoordinatesState.topBeforeAction,\n width: _this.windowCoordinatesState.widthBeforeAction,\n height: _this.windowCoordinatesState.heightBeforeAction\n });\n }\n else if (_this.windowStage === windowStage.MINIMIZED) {\n _this.setState({\n stage: windowStage.DEFAULT,\n height: _this.windowCoordinatesState.heightBeforeAction\n });\n }\n dispatchEvent(_this.props.onStageChange, event, _this, { state: windowStage.DEFAULT });\n };\n _this.handleCloseWindow = function (event) {\n event.preventDefault();\n dispatchEvent(_this.props.onClose, event, _this, { state: undefined });\n };\n _this.handleDoubleClick = function (e) {\n if (_this.windowStage === windowStage.FULLSCREEN || _this.windowStage === windowStage.MINIMIZED) {\n _this.handleRestore(e);\n }\n else {\n _this.handleFullscreen(e);\n }\n };\n // Handle resizing\n _this.handleResize = function (event, props) {\n var x = _this.props.appendTo ? event.pageX - _this.offSetCoordinates.x : event.pageX;\n var y = _this.props.appendTo ? event.pageY - _this.offSetCoordinates.y : event.pageY;\n var currentWidth = _this.width;\n var currentHeight = _this.height;\n var minWidth = _this.props.minWidth || DEFAULT_MIN_WIDTH;\n var minHeight = _this.props.minHeight || DEFAULT_MIN_HEIGHT;\n var heightDifference = _this.top - y;\n var widthDifference = _this.left - x;\n var newWidth = x - _this.left;\n var newHeight = y - _this.top;\n var newState = Object.assign({}, _this.state, { isDragging: !props.end });\n if (props.direction.indexOf('n') >= 0 && minHeight - (currentHeight + heightDifference) < 0) {\n if (_this.top > 0) {\n newState.height = currentHeight + heightDifference;\n }\n newState.top = y;\n }\n if (props.direction.indexOf('s') >= 0 && (minHeight - newHeight < 0)) {\n newState.height = newHeight;\n }\n if (props.direction.indexOf('w') >= 0 && minWidth - (currentWidth + widthDifference) < 0) {\n if (_this.left > 0) {\n newState.width = currentWidth + widthDifference;\n }\n newState.left = x;\n }\n if (props.direction.indexOf('e') >= 0 && (minWidth - newWidth < 0)) {\n newState.width = newWidth;\n }\n _this.setState(newState);\n _this.dispatchMoveEvent(_this.props.onResize, event, true, props.end);\n };\n // Dispatcher for the resize and move events\n _this.dispatchMoveEvent = function (callback, event, drag, end) {\n if (!callback) {\n return;\n }\n callback.call(undefined, {\n nativeEvent: event.nativeEvent ? event.nativeEvent : event.originalEvent,\n drag: drag,\n end: end,\n target: _this,\n left: _this.state.left,\n top: _this.state.top,\n width: _this.state.width,\n hight: _this.state.height,\n height: _this.state.height\n });\n };\n _this.handleBrowserWindowResize = function () {\n if (_this.windowStage === windowStage.FULLSCREEN) {\n _this.setState({\n width: _this.props.appendTo ? _this.props.appendTo.offsetWidth : window.innerWidth,\n height: _this.props.appendTo ? _this.props.appendTo.offsetHeight : window.innerHeight\n });\n }\n };\n _this.setZindex = function () {\n if (_this.state.focused) {\n var allWindows = document && document.querySelectorAll('.k-window');\n var maxZindex_1 = 10002;\n allWindows.forEach(function (KRwindow) {\n var computedStyle = window.getComputedStyle(KRwindow, null);\n var zIndexValue = parseInt(computedStyle.zIndex !== null ? computedStyle.zIndex : '10002', 10);\n zIndexValue > maxZindex_1 ? maxZindex_1 = zIndexValue : null;\n });\n if (_this.windowElement && maxZindex_1.toString() === _this.windowElement.style.zIndex) {\n return _this.windowElement.style.zIndex;\n }\n return (maxZindex_1 + 1).toString();\n }\n return _this.windowElement.style.zIndex;\n };\n validatePackage(packageMetadata);\n _this.state = {\n stage: _this.props.stage || windowStage.DEFAULT,\n isDragging: false,\n top: _this.getInitialTop(),\n left: _this.getInitialLeft(),\n width: _this.getInitialWidth(),\n height: _this.getInitialHeight(),\n focused: true\n };\n _this.windowCoordinatesState = {\n leftBeforeAction: _this.getInitialLeft(),\n topBeforeAction: _this.getInitialTop(),\n widthBeforeAction: _this.getInitialWidth(),\n heightBeforeAction: _this.getInitialHeight()\n };\n return _this;\n }\n /**\n * @hidden\n */\n Window.prototype.componentDidMount = function () {\n if (window) {\n window.addEventListener('resize', this.handleBrowserWindowResize);\n }\n if (this.props.appendTo) {\n var containerCoordinates = this.props.appendTo.getBoundingClientRect();\n var bodyRect = document.body.getBoundingClientRect();\n this.offSetCoordinates.x = containerCoordinates.left - bodyRect.left;\n this.offSetCoordinates.y = containerCoordinates.top - bodyRect.top;\n }\n };\n /**\n * @hidden\n */\n Window.prototype.componentWillUnmount = function () {\n if (window) {\n window.removeEventListener('resize', this.handleBrowserWindowResize);\n }\n };\n /**\n * @hidden\n */\n Window.prototype.componentDidUpdate = function () {\n if (this.props.appendTo) {\n var containerCoordinates = this.props.appendTo.getBoundingClientRect();\n var bodyRect = document.body.getBoundingClientRect();\n this.offSetCoordinates.x = containerCoordinates.left - bodyRect.left;\n this.offSetCoordinates.y = containerCoordinates.top - bodyRect.top;\n }\n };\n /**\n * @hidden\n */\n Window.prototype.render = function () {\n var _this = this;\n var elementsArray = React.Children.toArray(this.props.children);\n var content = this.getContent(elementsArray);\n var actions = this.getActionBar(elementsArray);\n var classNamesWindow = classNames('k-widget', 'k-window', this.props.className, { 'k-window-minimized': this.state.stage === 'MINIMIZED' }, { 'k-window-focused': this.state.focused });\n var windowElement = (React.createElement(React.Fragment, null,\n this.props.modal && React.createElement(\"div\", { className: \"k-overlay\" }),\n React.createElement(\"div\", { tabIndex: 0, onFocus: function () { return _this.setState({ focused: true }); }, onBlur: function () { return _this.setState({ focused: false }); }, onKeyDown: this.handleKeyDown, ref: (function (el) { return _this.windowElement = el; }), className: classNamesWindow, style: __assign({ top: this.top, left: this.left, width: this.width, height: this.height || '', zIndex: this.setZindex() }, this.props.style) },\n React.createElement(MiddleLayerOptimization, { shouldUpdateOnDrag: this.props.shouldUpdateOnDrag || false, isDragging: this.state.isDragging },\n React.createElement(Draggable, { onPress: this.onPress, onDrag: this.onDrag, onRelease: this.onRelease, ref: function (component) { return _this.draggable = component; } },\n React.createElement(WindowTitleBar, { stage: this.windowStage, onDoubleClick: this.props.doubleClickStageChange ? this.handleDoubleClick : undefined, onMinimizeButtonClick: this.handleMinimize, onFullScreenButtonClick: this.handleFullscreen, onRestoreButtonClick: this.handleRestore, onCloseButtonClick: this.handleCloseWindow, closeButton: this.props.closeButton, minimizeButton: this.props.minimizeButton, maximizeButton: this.props.maximizeButton, restoreButton: this.props.restoreButton }, this.props.title)),\n this.windowStage !== windowStage.MINIMIZED\n ? (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"k-window-content\" }, content),\n actions))\n : null,\n this.windowStage === windowStage.DEFAULT &&\n this.props.resizable\n ? React.createElement(ResizeHandlers, { onResize: this.handleResize })\n : null))));\n if (this.props.appendTo) {\n return ReactDOM.createPortal(windowElement, this.props.appendTo);\n }\n return windowElement;\n };\n Object.defineProperty(Window.prototype, \"top\", {\n // Getters\n get: function () {\n if (this.windowStage !== windowStage.FULLSCREEN) {\n return Math.max(this.props.top || this.state.top, 0);\n }\n return 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Window.prototype, \"left\", {\n get: function () {\n if (this.windowStage !== windowStage.FULLSCREEN) {\n return Math.max(this.props.left || this.state.left, 0);\n }\n return 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Window.prototype, \"width\", {\n get: function () {\n var width = this.props.width || this.state.width;\n if (this.windowStage === windowStage.FULLSCREEN) {\n if (this.props.appendTo) {\n width = this.props.appendTo.offsetWidth;\n return width;\n }\n width = window.innerWidth;\n }\n return width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Window.prototype, \"height\", {\n get: function () {\n var height = this.props.height || this.state.height;\n if (this.windowStage === windowStage.FULLSCREEN) {\n if (this.props.appendTo) {\n height = this.props.appendTo.offsetHeight;\n return height;\n }\n height = window.innerHeight;\n }\n else if (this.windowStage === windowStage.MINIMIZED) {\n height = 0;\n }\n return height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Window.prototype, \"windowStage\", {\n get: function () {\n return this.props.stage || this.state.stage;\n },\n enumerable: true,\n configurable: true\n });\n Window.prototype.getActionBar = function (children) {\n return children.filter(function (child) { return child && child.type === WindowActionsBar; });\n };\n Window.prototype.getContent = function (children) {\n return children.filter(function (child) {\n return child && child.type !== WindowActionsBar;\n });\n };\n /**\n * @hidden\n */\n Window.propTypes = {\n id: PropTypes.string,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n left: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n top: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n initialwidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n initialHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n initialLeft: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n initialTop: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n minWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n minHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n resizable: PropTypes.bool,\n draggable: PropTypes.bool,\n title: PropTypes.any,\n shouldUpdateOnDrag: PropTypes.bool,\n stage: PropTypes.oneOf(['DEFAULT', 'MINIMIZED', 'FULLSCREEN']),\n className: PropTypes.string,\n style: PropTypes.object\n };\n /**\n * @hidden\n */\n Window.defaultProps = {\n minWidth: DEFAULT_MIN_WIDTH,\n minHeight: DEFAULT_MIN_HEIGHT,\n resizable: true,\n draggable: true,\n modal: false,\n doubleClickStageChange: true\n };\n return Window;\n}(React.Component));\nexport { Window };\n","import { FC } from 'react';\r\nimport { ReactComponent as CloseIcon } from '../../assets/svg/close.svg';\r\n\r\ninterface IProps {\r\n title: string;\r\n close?: () => void;\r\n icon?: any;\r\n}\r\n\r\nconst ModalHeader: FC = ({ close, title, icon }) => {\r\n return (\r\n
\r\n {title !== '' && icon}\r\n

{title}

\r\n {!!close && }\r\n
\r\n );\r\n};\r\n\r\nexport default ModalHeader;\r\n","import { FC } from 'react';\r\nimport { Dialog } from '@progress/kendo-react-dialogs';\r\n\r\nimport ModalHeader from './ModalHeader';\r\nimport ModalFooter, { IModalFooterProps } from './ModalFooter';\r\n\r\nimport './Modal.scss';\r\n\r\ninterface IProps extends IModalFooterProps {\r\n className?: string;\r\n title: string;\r\n icon?: any;\r\n description?: string;\r\n onClose?: () => void;\r\n validationMessage?: string;\r\n additionalButtons?: JSX.Element | null;\r\n hideCrossIcon?: boolean;\r\n}\r\n\r\nconst ModalLayout: FC = ({\r\n title,\r\n icon,\r\n className = '',\r\n description = '',\r\n onClose,\r\n onCancel,\r\n onConfirm,\r\n hideCrossIcon,\r\n cancelBtnTitle = 'Cancel',\r\n confirmBtnTitle = 'Add',\r\n confirmDisabled = false,\r\n confirmLoading = false,\r\n cancelDisabled = false,\r\n validationMessage = '',\r\n cancelBtnColor = 'primary',\r\n cancelBtnStyleType = 'outlined',\r\n confirmBtnColor = 'primary',\r\n confirmBtnStyleType = 'default',\r\n additionalButtons,\r\n children,\r\n}) => {\r\n const handleClose = () => {\r\n if (cancelDisabled || confirmLoading) return;\r\n (onClose || onCancel)?.();\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n {description && {description}}\r\n {children}\r\n {validationMessage && {validationMessage}}\r\n \r\n {additionalButtons}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ModalLayout;\r\n","import { FC } from 'react';\r\n\r\nimport ModalLayout from '../../ModalLayout';\r\nimport type { IModalFooterProps } from '../../ModalLayout/ModalFooter';\r\n\r\nimport './ConfirmModal.scss';\r\n\r\ninterface IProps {\r\n onCancel: () => void;\r\n onConfirm: () => void;\r\n title: string;\r\n icon?: any;\r\n visible: boolean;\r\n confirmBtnColor?: IModalFooterProps['confirmBtnColor'];\r\n confirmDisabled?: IModalFooterProps['confirmDisabled'];\r\n confirmLoading?: IModalFooterProps['confirmLoading'];\r\n confirmBtnTitle?: string;\r\n cancelBtnTitle?: string;\r\n}\r\n\r\nconst ConfirmModal: FC = ({\r\n onCancel,\r\n onConfirm,\r\n title,\r\n icon,\r\n visible,\r\n children,\r\n confirmBtnColor = 'danger',\r\n confirmDisabled,\r\n confirmLoading,\r\n confirmBtnTitle = 'Proceed',\r\n cancelBtnTitle,\r\n}) => {\r\n return visible ? (\r\n \r\n {children}\r\n \r\n ) : null;\r\n};\r\n\r\nexport default ConfirmModal;\r\n","import RegExps from 'shared/shared.regExps';\r\nimport { normalizeDateString, prepareDateForBE } from 'shared/utils/dateFormatter';\r\nimport { TFunction } from 'react-i18next';\r\n\r\nexport const errorText = 'The input field is not in the correct format.';\r\nexport const minNumber = -2147483648;\r\nexport const maxNumber = 2147483648;\r\nexport const maxLength = 200;\r\nexport const maxLengthGrantPlanName = 40;\r\n\r\nconst numberValidatorCreator =\r\n (min: number, max: number, text = 'Input value') =>\r\n (value: number): string => {\r\n return value >= min && value <= max ? '' : `${text} from ${min} to ${max}`;\r\n };\r\nexport const trimValue = (value: any): any => (typeof value === 'string' ? value.trim() : value);\r\nconst inputNumberValidator = numberValidatorCreator(minNumber, maxNumber);\r\nconst positiveNumberValidator = numberValidatorCreator(0, maxNumber);\r\nconst riskFreeRateAndDividendYieldValidator = numberValidatorCreator(0, 100);\r\nconst volatilityValidator = riskFreeRateAndDividendYieldValidator;\r\nconst genericVestingMonthsValidator = numberValidatorCreator(1, 60);\r\n\r\nexport const valuationValidator = (value: number): string => {\r\n return String(value).length <= 30 ? '' : errorText;\r\n};\r\nexport const requiredTextInputValidator = (value: string): string => {\r\n const result = trimValue(value);\r\n if (!result && result !== 0) return errorText;\r\n return '';\r\n};\r\nexport const validateSpecialCharacters = (value: string): string => {\r\n return value && !RegExps.specialCharacters.test(value.trim())\r\n ? \"Field only accepts a-z A-Z 0-9 . , -_ + = ' # @ & ( ) { | } [ ] : ; / ! ? $ % \\\\s (spaces)\"\r\n : '';\r\n};\r\nexport const validatePerformanceHurdleSpecialCharacter = (value: string): string => {\r\n return value && !RegExps.performanceHurdle.test(value.trim())\r\n ? 'Field only accepts a-z, A-Z, 0-9, semi colon and colon, hyphens, and spaces'\r\n : '';\r\n};\r\nexport const validateValuationSpecialCharacters = (value: string): string => {\r\n return value && !RegExps.numbersCharacters.test(value) ? 'Field only accepts a-z A-Z 0-9' : '';\r\n};\r\nexport const validateAlphaNumeric = (value: string): string => {\r\n return value && !RegExps.alphaNumeric.test(value) ? 'Field only accepts a-z A-Z 0-9' : '';\r\n};\r\n\r\nexport const validSharePrice = [requiredTextInputValidator, inputNumberValidator];\r\nexport const validMaturityTimeAndExercisePrice = [requiredTextInputValidator, positiveNumberValidator];\r\nexport const validRiskFreeRate = [requiredTextInputValidator, riskFreeRateAndDividendYieldValidator];\r\nexport const validVolatility = [requiredTextInputValidator, volatilityValidator];\r\nexport const validateFieldByTextNumber = [requiredTextInputValidator, inputNumberValidator];\r\nexport const validateFieldByTextSpecialCharacters = [\r\n requiredTextInputValidator, // validateSpecialCharacters // TODO uncomment this method for validating fields\r\n];\r\nexport const validateValuationFieldByTextSpecialCharacters = [\r\n requiredTextInputValidator,\r\n validateValuationSpecialCharacters,\r\n];\r\nexport const reportNameValidator = [requiredTextInputValidator, validateAlphaNumeric];\r\nexport const forfeitureRateValidator = riskFreeRateAndDividendYieldValidator;\r\nexport const grantLifeValidator = [\r\n requiredTextInputValidator,\r\n numberValidatorCreator(1, 240, 'Field only accepts numbers'),\r\n];\r\nexport const validGenericVestingMonths = [requiredTextInputValidator, genericVestingMonthsValidator];\r\n\r\nexport const parseErrorsMessages = (errorsObj: { [key: string]: string[] }, t: TFunction): string => {\r\n const cache: { [key: string]: boolean } = {};\r\n\r\n return Object.values(errorsObj)\r\n .flat()\r\n .reduce((acc, el: string) => {\r\n if (!cache[el]) {\r\n acc += ` ${t(el)} `;\r\n cache[el] = true;\r\n }\r\n\r\n return acc;\r\n }, '');\r\n};\r\n\r\nexport const formatToDateObject = (date: any): Date | null => {\r\n const { isDate, value } = normalizeDateString(date);\r\n return isDate ? new Date(value) : null;\r\n};\r\nexport const convertValueToNumber = (value: string): number => (value ? parseInt(value, 10) : 0);\r\nexport const convertDateToISO = (date: Date | null): string | null => (date ? prepareDateForBE(date) : null);\r\n\r\nexport const getYearsData = (): { currentYear: number; availableYears: Array<{ id: number; text: string }> } => {\r\n const minYear = 2012;\r\n const currentYear = new Date().getFullYear();\r\n const maxYear = Math.max(2041, currentYear);\r\n\r\n const availableYears = new Array(maxYear - minYear + 1).fill('').map((_, idx) => {\r\n const year = minYear + idx;\r\n return {\r\n id: year,\r\n text: `${year}`,\r\n };\r\n });\r\n return {\r\n currentYear,\r\n availableYears,\r\n };\r\n};\r\n\r\nexport const getYearNameFromColumnName = (columnName?: string): { year: number; name: string } => {\r\n const [year = '', name = '']: string[] = (columnName || '').split('_');\r\n return { year: +year, name };\r\n};\r\n\r\nexport const removeExponentialFormSmallFloat = (value: number | string): string | number => {\r\n if (Number.isNaN(+value) || +value > 0.000001) return value; // INFO: lower will be exp form\r\n const str = `${value}`;\r\n const [main, pow] = str.split('e');\r\n const powNum = +pow;\r\n if (Number.isNaN(powNum) || powNum >= 0) return value;\r\n const [int, rest] = main.split('.');\r\n const zerosQty = Math.abs(powNum) - int.length;\r\n return `0.${Array(zerosQty).fill('0').join('')}${int}${rest || ''}`;\r\n};\r\n","import { FC, MouseEvent } from 'react';\r\nimport { NavLink, NavLinkProps } from 'react-router-dom';\r\nimport { LinkOptionRouteType } from '../../shared/constants/routeLinkOptions';\r\n\r\nimport './NavItem.scss';\r\n\r\nconst getLinkClassName: NavLinkProps['className'] = ({ isActive }) => `appNavItem${isActive ? ' active' : ''}`;\r\n\r\nconst NavItem: FC = ({\r\n iconStart,\r\n iconEnd,\r\n label = '',\r\n iconStartColor = '',\r\n iconEndColor = '',\r\n onClick,\r\n labelForBradCrumbs,\r\n ...props\r\n}) => {\r\n const handleClick = (e: MouseEvent) => {\r\n if (!props.to) e.preventDefault();\r\n onClick?.(e);\r\n };\r\n return (\r\n \r\n {!!iconStart &&
{iconStart}
}\r\n {!!label && {label}}\r\n {!!iconEnd &&
{iconEnd}
}\r\n
\r\n );\r\n};\r\n\r\nexport default NavItem;\r\n","import { FC, useEffect, useState, useRef, cloneElement, useCallback } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n DropDownList,\r\n DropDownListProps,\r\n DropDownListChangeEvent as ListChangeEvent,\r\n DropDownListFilterChangeEvent,\r\n ListItemProps,\r\n} from '@progress/kendo-react-dropdowns';\r\nimport { filterBy, FilterDescriptor } from '@progress/kendo-data-query';\r\n\r\nimport LabelText from '../Label';\r\n\r\nimport './SingleSelectControl.scss';\r\n\r\nconst chevronDownIconClass = 'k-i-arrow-chevron-down';\r\nconst chevronUpIconClass = 'k-i-arrow-chevron-up';\r\nconst defaultPopupSettings = {\r\n className: 'SingleSelectPopup',\r\n};\r\n\r\nexport type DropDownListChangeEvent = ListChangeEvent;\r\ninterface IProps {\r\n isRequiredIcon?: boolean;\r\n onChange?: (value: DropDownListChangeEvent) => void;\r\n defaultOption?: any;\r\n placeholder?: string;\r\n optional?: string;\r\n defaultItem?: any;\r\n}\r\n\r\nconst SingleSelectControl: FC> = ({\r\n isRequiredIcon = false,\r\n onChange,\r\n label,\r\n optional,\r\n placeholder,\r\n value,\r\n defaultOption,\r\n defaultItem,\r\n filterable = false,\r\n data,\r\n popupSettings = {},\r\n ...props\r\n}) => {\r\n const { t } = useTranslation();\r\n const selectFieldRef = useRef(null);\r\n const prevIconClassName = useRef(chevronDownIconClass);\r\n const [ddValue, setValue] = useState(null);\r\n const [iconClass, setIconClass] = useState(chevronDownIconClass);\r\n const [filterValue, setFilterValue] = useState('');\r\n const [filteredData, setFilteredData] = useState(data || []);\r\n\r\n useEffect(() => {\r\n prevIconClassName.current = iconClass;\r\n }, [iconClass]);\r\n\r\n const handleChange = (e: DropDownListChangeEvent) => {\r\n const { value: inputValue } = e;\r\n setValue(inputValue);\r\n\r\n if (onChange) {\r\n onChange(e);\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n setFilterValue('');\r\n setFilteredData([...(data || [])]);\r\n setIconClass(chevronDownIconClass);\r\n };\r\n\r\n const handleOpen = () => {\r\n setIconClass(chevronUpIconClass);\r\n };\r\n\r\n const filterData = (filter: FilterDescriptor) => {\r\n const allData = [...(data || [])];\r\n return filterBy(allData, filter);\r\n };\r\n\r\n const handleFilterChange = ({ filter }: DropDownListFilterChangeEvent) => {\r\n setFilterValue(filter.value || '');\r\n setFilteredData(filterData(filter));\r\n };\r\n\r\n useEffect(() => {\r\n if (defaultOption) {\r\n setValue(defaultOption);\r\n }\r\n }, [defaultOption]);\r\n\r\n useEffect(() => {\r\n if ((defaultOption?.text || ddValue?.text) && selectFieldRef.current) {\r\n selectFieldRef.current.actionElement?.setAttribute('title', ddValue?.text || defaultOption?.text);\r\n }\r\n }, [defaultOption, ddValue]);\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setFilteredData(data);\r\n }\r\n }, [data]);\r\n\r\n const itemRenderer = useCallback((li: React.ReactElement, { dataItem }: ListItemProps) => {\r\n return cloneElement(li, { ...li.props, title: dataItem?.text || '' });\r\n }, []);\r\n\r\n const isSelectedValuePlaceholder = !!placeholder && (ddValue?.text || defaultItem?.text) === placeholder;\r\n\r\n const valueRenderer = useCallback(\r\n (element: React.ReactElement, optionData: any) => {\r\n return isSelectedValuePlaceholder || !optionData?.text\r\n ? element\r\n : cloneElement(element, { ...element.props, title: optionData.text });\r\n },\r\n [isSelectedValuePlaceholder]\r\n );\r\n\r\n const listNoDataRender: DropDownListProps['listNoDataRender'] = useCallback(\r\n (element) => {\r\n return cloneElement(element, element.props, t('Common.FormDropdown.NoDataFound'));\r\n },\r\n [t]\r\n );\r\n\r\n return (\r\n
\r\n {!!label && }\r\n\r\n \r\n
\r\n );\r\n};\r\nexport default SingleSelectControl;\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgChevronLeftForward(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 14,\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.85355 13.8536C7.67999 14.0271 7.41056 14.0464 7.21569 13.9114L7.14645 13.8536L0.646447 7.35355C0.47288 7.17999 0.453595 6.91056 0.588591 6.71569L0.646447 6.64645L7.14645 0.146447C7.34171 -0.0488155 7.65829 -0.0488155 7.85355 0.146447C8.02712 0.320013 8.0464 0.589437 7.91141 0.784306L7.85355 0.853553L1.70711 7L7.85355 13.1464C8.04882 13.3417 8.04882 13.6583 7.85355 13.8536ZM13.8536 13.8536C13.68 14.0271 13.4106 14.0464 13.2157 13.9114L13.1464 13.8536L6.64645 7.35355C6.47288 7.17999 6.4536 6.91056 6.58859 6.71569L6.64645 6.64645L13.1464 0.146447C13.3417 -0.0488155 13.6583 -0.0488155 13.8536 0.146447C14.0271 0.320013 14.0464 0.589437 13.9114 0.784306L13.8536 0.853553L7.70711 7L13.8536 13.1464C14.0488 13.3417 14.0488 13.6583 13.8536 13.8536Z\",\n fill: \"rgba(0, 124, 176, 1)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronLeftForward);\nexport default __webpack_public_path__ + \"static/media/chevron-left-forward.e3b835977e9441dec52c21d05b932899.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgChevronRightForward(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 14,\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.14645 13.8536C6.32001 14.0271 6.58944 14.0464 6.78431 13.9114L6.85355 13.8536L13.3536 7.35355C13.5271 7.17999 13.5464 6.91056 13.4114 6.71569L13.3536 6.64645L6.85355 0.146447C6.65829 -0.0488155 6.34171 -0.0488155 6.14645 0.146447C5.97288 0.320013 5.9536 0.589437 6.08859 0.784306L6.14645 0.853553L12.2929 7L6.14645 13.1464C5.95118 13.3417 5.95118 13.6583 6.14645 13.8536ZM0.146447 13.8536C0.320013 14.0271 0.589437 14.0464 0.784306 13.9114L0.853553 13.8536L7.35355 7.35355C7.52712 7.17999 7.5464 6.91056 7.41141 6.71569L7.35355 6.64645L0.853553 0.146447C0.658291 -0.0488155 0.341709 -0.0488155 0.146447 0.146447C-0.0271197 0.320013 -0.0464049 0.589437 0.0885912 0.784306L0.146447 0.853553L6.29289 7L0.146447 13.1464C-0.0488155 13.3417 -0.0488155 13.6583 0.146447 13.8536Z\",\n fill: \"#007CB0\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronRightForward);\nexport default __webpack_public_path__ + \"static/media/chevron-right-forward.76d76ce055d10783f4c7bf49a57835c4.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgChevronLeftBold(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 8,\n height: 14,\n viewBox: \"0 0 8 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.20711 7L7.35355 13.1464C7.54882 13.3417 7.54882 13.6583 7.35355 13.8536C7.15829 14.0488 6.84171 14.0488 6.64645 13.8536L0.146447 7.35355C-0.0488155 7.15829 -0.0488155 6.84171 0.146447 6.64645L6.64645 0.146447C6.84171 -0.0488155 7.15829 -0.0488155 7.35355 0.146447C7.54882 0.341709 7.54882 0.658291 7.35355 0.853553L1.20711 7Z\",\n fill: \"rgba(0, 124, 176, 1)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronLeftBold);\nexport default __webpack_public_path__ + \"static/media/chevron-left-bold.526f9c084eb1da38569d35a091e1a3ca.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgChevronRightBold(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 8,\n height: 14,\n viewBox: \"0 0 8 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.646447 13.1464C0.451185 13.3417 0.451185 13.6583 0.646447 13.8536C0.841709 14.0488 1.15829 14.0488 1.35355 13.8536L7.85355 7.35355C8.04882 7.15829 8.04882 6.84171 7.85355 6.64645L1.35355 0.146446C1.15829 -0.0488159 0.841709 -0.0488159 0.646447 0.146446C0.451185 0.341708 0.451185 0.658292 0.646447 0.853554L6.79289 7L0.646447 13.1464Z\",\n fill: \"#007CB0\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronRightBold);\nexport default __webpack_public_path__ + \"static/media/chevron-right-bold.bdae9e3de944330d028dc4833f3715c8.svg\";\nexport { ForwardRef as ReactComponent };","import { FC, useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport Configs from 'shared/shared.configs';\r\nimport { UsePaginationType } from 'shared/hooks/usePagination/usePagination';\r\nimport { ReactComponent as ForwardLeftIcon } from 'assets/svg/chevrons/chevron-left-forward.svg';\r\nimport { ReactComponent as ForwardRightIcon } from 'assets/svg/chevrons/chevron-right-forward.svg';\r\nimport { ReactComponent as LeftIcon } from 'assets/svg/chevrons/chevron-left-bold.svg';\r\nimport { ReactComponent as RightIcon } from 'assets/svg/chevrons/chevron-right-bold.svg';\r\nimport Input, { InputChangeEvent } from 'components/vendor/Input';\r\nimport SingleSelect, { DropDownListChangeEvent } from 'components/vendor/SingleSelect';\r\n\r\nimport './Pagination.scss';\r\n\r\ninterface IProps {\r\n pagination: UsePaginationType;\r\n disabled?: boolean;\r\n}\r\n\r\nconst dots = '...' as const;\r\nconst maxPagesSlice = 4;\r\nconst pagesSlice = maxPagesSlice - 1; // if 3 will be 0, 1, 2 (3 items)\r\nconst maxPageButtons = 10; // includes ... to\r\n\r\nconst Pagination: FC = ({\r\n pagination: {\r\n totalPages,\r\n currentPage,\r\n setFirstPage,\r\n setLastPage,\r\n setNextPage,\r\n setPreviousPage,\r\n setPage,\r\n previousEnabled,\r\n nextEnabled,\r\n setPageSize,\r\n pageSize,\r\n totalItems,\r\n startIndex,\r\n endIndex,\r\n },\r\n disabled,\r\n}) => {\r\n const { t } = useTranslation();\r\n const [manualPage, setManualPage] = useState(`${currentPage}`);\r\n\r\n const pages = useMemo(() => {\r\n let result: Array = totalPages ? new Array(totalPages).fill('').map((_, idx) => idx + 1) : [];\r\n if (result.length > maxPageButtons) {\r\n if (currentPage > pagesSlice && currentPage < totalPages - pagesSlice) {\r\n result = [dots, ...result.slice(currentPage - pagesSlice, currentPage + pagesSlice), dots];\r\n } else {\r\n result = [...result.slice(0, maxPagesSlice), dots, ...result.slice(-pagesSlice)];\r\n }\r\n }\r\n return result;\r\n }, [totalPages, currentPage]);\r\n\r\n const handleChangePage = ({ value }: InputChangeEvent) => {\r\n if (disabled) return;\r\n const number = value ? value.replace(/\\D/g, '') : '';\r\n setManualPage(number);\r\n if (number) setPage(+number ? +number - 1 : 0);\r\n };\r\n\r\n const handleChangePageSize = ({ value }: DropDownListChangeEvent) => {\r\n if (disabled) return;\r\n setPageSize((value?.id || Configs.Grid.PageSizes[0].id) as number);\r\n };\r\n\r\n const handleChoosePage = (page: typeof dots | number) => () => {\r\n if (disabled) return;\r\n if (page === dots) return;\r\n const pageIdx = page - 1;\r\n if (currentPage === pageIdx) return;\r\n setPage(pageIdx);\r\n };\r\n\r\n const handleBlurManualPage = () => {\r\n if (disabled) return;\r\n if (manualPage === '') {\r\n setManualPage(`${currentPage}`);\r\n }\r\n };\r\n\r\n const previousArrowDisabledClassName = !previousEnabled || disabled ? ' Deloitte__Pagination__arrow--disabled' : '';\r\n const nextArrowDisabledClassName = !nextEnabled || disabled ? ' Deloitte__Pagination__arrow--disabled' : '';\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n item.id === pageSize)}\r\n onChange={handleChangePageSize}\r\n disabled={disabled}\r\n />\r\n \r\n {startIndex + 1 < 0 ? 0 : startIndex + 1}—{endIndex + 1 < 0 ? 0 : endIndex + 1}{' '}\r\n {t('Common.Table.Pagination.Of')} {totalItems}\r\n \r\n
\r\n
\r\n
\r\n {totalPages > 0 && (\r\n
\r\n
\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {pages.map((item, idx) => (\r\n \r\n {item}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Pagination;\r\n","import { FC, ReactNode } from 'react';\r\nimport {\r\n Switch as VendorSwitch,\r\n SwitchProps,\r\n SwitchChangeEvent as VendorSwitchChangeEvent,\r\n} from '@progress/kendo-react-inputs';\r\nimport { Label } from '@progress/kendo-react-labels';\r\n\r\nimport './Switch.scss';\r\n\r\nconst switchWrapperClassName = 'VendorSwitch__Wrapper';\r\n\r\ntype LabelPositionType = 'top' | 'bottom' | 'left' | 'right';\r\n\r\nexport type SwitchChangeEvent = VendorSwitchChangeEvent;\r\n\r\nexport interface CustomVendorInputProps {\r\n label?: ReactNode;\r\n labelPosition?: LabelPositionType;\r\n}\r\n\r\ntype IProps = SwitchProps & CustomVendorInputProps;\r\n\r\nconst Switch: FC = ({ label, labelPosition = 'top', ...props }) => {\r\n return (\r\n
\r\n \r\n {!!label && (\r\n \r\n {label}\r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Switch;\r\n","import { FC } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { ReactComponent as PlusIcon } from '../../../assets/svg/plus.svg';\r\nimport { ReactComponent as FileExcel } from '../../../assets/svg/File_Excel.svg';\r\nimport Button from '../../Button';\r\nimport Switch, { SwitchChangeEvent } from '../../vendor/Switch';\r\n\r\nimport './TableActions.scss';\r\n\r\ninterface IProps {\r\n onDelete?: () => void;\r\n onExport?: () => void;\r\n onAddNew?: () => void;\r\n onToggle?: (checked: boolean) => void;\r\n deleteDisabled?: boolean;\r\n deleting?: boolean;\r\n exportDisabled?: boolean;\r\n exportingtext?: boolean;\r\n addNewDisabled?: boolean;\r\n toggleDisabled?: boolean;\r\n addNewItemName?: string;\r\n toggleLabel?: string;\r\n toggled?: boolean;\r\n}\r\n\r\nconst TableActions: FC = ({\r\n onDelete,\r\n deleteDisabled = false,\r\n deleting = false,\r\n onExport,\r\n exportingtext = false,\r\n exportDisabled = false,\r\n onAddNew,\r\n addNewDisabled = false,\r\n addNewItemName = '',\r\n onToggle,\r\n toggleDisabled = false,\r\n toggleLabel = '',\r\n toggled,\r\n}) => {\r\n const { t } = useTranslation();\r\n\r\n const handleDelete = () => {\r\n if (!deleteDisabled) onDelete?.();\r\n };\r\n const handleExport = () => {\r\n if (!exportDisabled) onExport?.();\r\n };\r\n const handleAddNew = () => {\r\n if (!addNewDisabled) onAddNew?.();\r\n };\r\n const handleToggle = ({ value }: SwitchChangeEvent) => {\r\n if (!toggleDisabled) onToggle?.(value);\r\n };\r\n return (\r\n <>\r\n {!!onToggle && (\r\n \r\n )}\r\n {!!onDelete && (\r\n \r\n {t('Common.Table.DeleteButton')}\r\n \r\n )}\r\n {!!onExport && (\r\n // }\r\n // disabled={exportDisabled}\r\n // >\r\n // {t('Common.Table.ExportToExcelButton')}\r\n // \r\n }\r\n className=\"tableExportAction\"\r\n onClick={handleExport}\r\n disabled={exportDisabled}\r\n styleType=\"text\"\r\n >\r\n {exportingtext ? t('Common.Table.Exporting') : t('Common.Table.ExportToExcelButton')}\r\n \r\n )}\r\n {!!onAddNew && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TableActions;\r\n","import { FC } from 'react';\r\nimport {\r\n Badge as VendorBadge,\r\n BadgeContainer as VendorBadgeContainer,\r\n BadgeProps as VendorBadgeProps,\r\n BadgeContainerProps as VendorBadgeContainerProps,\r\n} from '@progress/kendo-react-indicators';\r\n\r\nimport './Badge.scss';\r\n\r\nexport type BadgeProps = VendorBadgeProps;\r\nexport type BadgeContainerProps = VendorBadgeContainerProps;\r\n\r\nexport const Badge: FC = ({ children, className, size = 'small', shape = 'rounded', ...props }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const BadgeContainer: FC = ({\r\n children,\r\n className,\r\n style = { display: 'flex' },\r\n ...props\r\n}) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import { FC, useRef, useState, useEffect, memo } from 'react';\r\nimport { Input as VendorInput, InputProps, InputChangeEvent as ChangeEvent } from '@progress/kendo-react-inputs';\r\nimport { Error, Label } from '@progress/kendo-react-labels';\r\nimport { ReactComponent as CloseIcon } from 'assets/svg/close.svg';\r\nimport Utils from 'shared/shared.utils';\r\n\r\nimport './Input.scss';\r\n\r\nconst inputWrapperClassName = 'VendorInput__Wrapper';\r\n\r\nexport interface CustomVendorInputProps {\r\n startIcon?: any;\r\n endIcon?: any;\r\n isClearable?: boolean;\r\n labelTootip?: any;\r\n isRequiredIcon?: boolean;\r\n optional?: string;\r\n customMaxLength?: number;\r\n}\r\n\r\nexport type InputChangeEvent = ChangeEvent;\r\n\r\ntype IProps = CustomVendorInputProps & InputProps;\r\n\r\nconst getAdditionalClassNames = Utils.makeAdditionalClassNamesGenerator(inputWrapperClassName);\r\n\r\nconst Input: FC = ({\r\n startIcon,\r\n endIcon,\r\n isClearable: showClearIcon = true,\r\n validationMessage = '',\r\n label,\r\n disabled,\r\n onChange,\r\n value: valueProp,\r\n labelTootip,\r\n isRequiredIcon = false,\r\n optional = true,\r\n customMaxLength,\r\n ...props\r\n}) => {\r\n const inputChangeEventRef = useRef();\r\n const inputRef = useRef(null);\r\n const [value, setValue] = useState(valueProp);\r\n const isClearable = showClearIcon && !disabled;\r\n const handleChange = (e: InputChangeEvent) => {\r\n inputChangeEventRef.current = e;\r\n // INFO: prevent changing on scroll for input type=number\r\n if (!e?.nativeEvent?.inputType) return;\r\n setValue(e.value);\r\n onChange?.(e);\r\n };\r\n const handleClear = () => {\r\n if (!isClearable) return;\r\n inputRef.current?.focus();\r\n setValue('');\r\n onChange?.(\r\n inputChangeEventRef.current\r\n ? { ...inputChangeEventRef.current, value: '' }\r\n : ({ value: '', target: { name: props.name || '' } } as InputChangeEvent)\r\n );\r\n };\r\n useEffect(() => {\r\n setValue(valueProp);\r\n }, [valueProp]);\r\n\r\n return (\r\n <>\r\n {!!label && (\r\n \r\n {label}\r\n {labelTootip} {(props.required || isRequiredIcon) && *}\r\n {optional}\r\n \r\n )}\r\n \r\n \r\n {!!isClearable && (\r\n
\r\n \r\n
\r\n )}\r\n {!!startIcon &&
{startIcon}
}\r\n {!!endIcon &&
{endIcon}
}\r\n \r\n {validationMessage}\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default memo(Input);\r\n","export enum CommonClassName {\r\n PopupInModal = 'PopupInModal',\r\n}\r\n","import { cloneElement } from 'react';\r\nimport { filterBy } from '@progress/kendo-data-query';\r\nimport type { ItemRenderer, ValueRenderer, GetFilteredOptions } from './interfaces';\r\n\r\nexport const itemRenderer: ItemRenderer = (li, { dataItem }) => {\r\n return cloneElement(li, { ...li.props, title: dataItem?.text ? `${dataItem.text}` : '' });\r\n};\r\n\r\nexport const valueRenderer: ValueRenderer = (element, optionData) => {\r\n return cloneElement(element, {\r\n ...element.props,\r\n title: optionData?.text && optionData?.id ? `${optionData.text}` : '',\r\n });\r\n};\r\n\r\nexport const getFilteredOptions: GetFilteredOptions = (options, filter) => filterBy([...options], filter);\r\n","export enum Chevron {\r\n Down = 'k-i-arrow-chevron-down',\r\n Up = 'k-i-arrow-chevron-up',\r\n}\r\n\r\nexport enum OptionKey {\r\n id = 'id',\r\n text = 'text',\r\n}\r\n","import { FC, useEffect, useState, useCallback, useRef, MouseEvent, memo, useMemo, cloneElement } from 'react';\r\nimport { DropDownList, DropDownListFilterChangeEvent, DropDownListProps } from '@progress/kendo-react-dropdowns';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ReactComponent as CloseIcon } from 'assets/svg/close.svg';\r\nimport LabelText from 'components/Label';\r\nimport { CommonClassName } from '../commonClassName';\r\nimport { itemRenderer, valueRenderer, getFilteredOptions } from './helpers';\r\nimport { Chevron, OptionKey } from './enums';\r\nimport type { SingleSelectChangeEvent, SingleSelectProps } from './interfaces';\r\n\r\nimport './SingleSelect.scss';\r\n\r\nexport type DropDownListChangeEvent = SingleSelectChangeEvent;\r\n\r\nconst getPopupSettings = (inModal?: boolean): DropDownListProps['popupSettings'] => ({\r\n className: `SingleSelectPopup${inModal ? ` ${CommonClassName.PopupInModal}` : ''}`,\r\n});\r\n\r\nconst SingleSelect: FC = ({\r\n options: allOptions = [],\r\n value: outerValue,\r\n onChange,\r\n required = false,\r\n label,\r\n placeholder,\r\n filterable = false,\r\n clearable = false,\r\n inModal = false,\r\n ...props\r\n}) => {\r\n const { t } = useTranslation();\r\n const selectChangeEventRef = useRef();\r\n const [iconClass, setIconClass] = useState(Chevron.Down);\r\n\r\n const [value, setValue] = useState(outerValue);\r\n useEffect(() => {\r\n setValue((prev) => (prev?.id !== outerValue?.id || prev?.text !== outerValue?.text ? outerValue : prev));\r\n }, [outerValue]);\r\n\r\n const [filter, setFilter] = useState('');\r\n const [options, setOptions] = useState(allOptions);\r\n useEffect(() => {\r\n setOptions(allOptions);\r\n setFilter('');\r\n }, [allOptions]);\r\n\r\n const defaultItem = placeholder ? { text: placeholder, id: '' } : undefined;\r\n const showCloseIcon = clearable && !!value?.id && !props.disabled && !required;\r\n const popupSettings = useMemo(() => getPopupSettings(inModal), [inModal]);\r\n\r\n const handleChange = useCallback(\r\n (e: SingleSelectChangeEvent) => {\r\n selectChangeEventRef.current = e;\r\n setValue(e.value);\r\n onChange?.(e);\r\n },\r\n [onChange]\r\n );\r\n\r\n const handleClose = useCallback(() => {\r\n setFilter('');\r\n setOptions(allOptions);\r\n setIconClass(Chevron.Down);\r\n }, [allOptions]);\r\n\r\n const handleOpen = useCallback(() => {\r\n setIconClass(Chevron.Up);\r\n }, []);\r\n\r\n const handleFilterChange = useCallback(\r\n ({ filter: filterObj }: DropDownListFilterChangeEvent) => {\r\n setFilter(filterObj.value || '');\r\n setOptions(getFilteredOptions(allOptions, filterObj));\r\n },\r\n [allOptions]\r\n );\r\n\r\n const handleClear = (e: MouseEvent) => {\r\n e.stopPropagation();\r\n if (!showCloseIcon) return;\r\n const defaultOption = allOptions.find((item) => !!item && item.id === '');\r\n const newValue = defaultOption || null;\r\n setValue(newValue);\r\n onChange?.(\r\n selectChangeEventRef.current\r\n ? { ...selectChangeEventRef.current, value: newValue }\r\n : ({ value: newValue, target: { name: props.name || '' } } as SingleSelectChangeEvent)\r\n );\r\n };\r\n\r\n const listNoDataRender: DropDownListProps['listNoDataRender'] = useCallback(\r\n (element) => {\r\n return cloneElement(element, element.props, t('Common.FormDropdown.NoDataFound'));\r\n },\r\n [t]\r\n );\r\n\r\n return (\r\n \r\n {!!label && }\r\n\r\n \r\n {showCloseIcon && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\nexport default memo(SingleSelect);\r\n","import { ILocale, ILocaleOption } from 'shared/models/models.dl';\r\n\r\nexport const USER_LOCALE = 'user_locale';\r\n\r\nexport const DEFAULT_LOCALE: ILocaleOption = {\r\n id: 'en-US',\r\n text: 'English (United States)',\r\n};\r\n\r\nexport const transformToSelectFormat = (locales: ILocale[]): ILocaleOption[] => {\r\n if (!Array.isArray(locales)) {\r\n return [DEFAULT_LOCALE];\r\n }\r\n return locales.map((locale) => ({ text: locale.nativeName, id: locale.localeCode }));\r\n};\r\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import _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';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (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 = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(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\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); 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$1() { 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; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nfunction createCachedFormatter(fn) {\n var cache = {};\n return function invokeFormatter(val, lng, options) {\n var key = lng + JSON.stringify(options);\n var formatter = cache[key];\n\n if (!formatter) {\n formatter = fn(lng, options);\n cache[key] = formatter;\n }\n\n return formatter(val);\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, options);\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val, options.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.ListFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); 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$2() { 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 removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n if (err && data && tried < _this3.maxRetries) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); 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$3() { 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 noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport { DEFAULT_LOCALE } from './helpers';\r\n\r\nclass I18Service {\r\n init = (initialLanguage: string) => {\r\n i18n.use(initReactI18next).init({\r\n resources: {\r\n en: {\r\n translation: {},\r\n },\r\n },\r\n lng: initialLanguage,\r\n fallbackLng: DEFAULT_LOCALE.id,\r\n /**\r\n * INFO:\r\n * If you will need nsSeparator - do not use ':' to prevent crashing.\r\n * Sometimes BE return keys as translation with nested keys and this translation\r\n * may have text like dates (MM:DD:YYYY) or something else with special characters.\r\n * */\r\n nsSeparator: false,\r\n interpolation: {\r\n escapeValue: false,\r\n prefix: '${',\r\n suffix: '}',\r\n nestingPrefix: '{{',\r\n nestingSuffix: '}}',\r\n },\r\n });\r\n return i18n;\r\n };\r\n\r\n onChangeLocaleBundle = async (bundle: Record, localeCode?: string | null) => {\r\n const locale = localeCode || DEFAULT_LOCALE.id;\r\n i18n.addResourceBundle(locale, 'translation', bundle);\r\n await i18n.changeLanguage(locale);\r\n };\r\n\r\n setDefaultLocale = () => {\r\n i18n.changeLanguage(DEFAULT_LOCALE.id);\r\n };\r\n}\r\n\r\nexport const i18Service = new I18Service();\r\n","import * as BM from '../models/models.bl';\r\nimport * as DM from '../models/models.dl';\r\nimport Utils from '../shared.utils';\r\n\r\nexport const DefaultItemsPerPage = 5;\r\n\r\nexport const PageSizes = Utils.getSelectOptions([5, 10, 25, 50, 100]);\r\n\r\nexport const getInitialPaginatedTableData = (\r\n initialConfig: BM.ColumnConfiguration[]\r\n): BM.IPaginatedTableResponseWithHeaders => ({\r\n tableData: {\r\n data: [],\r\n header: initialConfig,\r\n },\r\n totalCount: 0,\r\n});\r\n\r\nexport const defaultPagingRequestData: BM.ITableDataInfoRequest = {\r\n searchBy: '',\r\n orderBy: '',\r\n asc: true,\r\n pageNumber: 1,\r\n pageSize: DefaultItemsPerPage,\r\n};\r\n\r\nconst bgCyanFgWhiteClassName = 'bg-cyan fg-white'; // need to for colored headers. Such class comes with response data headers to.\r\n\r\nenum CommonColumnName {\r\n id = 'id',\r\n startDate = 'startDate',\r\n leaveStartDate = 'leaveStartDate',\r\n leaveEndDate = 'leaveEndDate',\r\n grantDate = 'grantDate',\r\n terminationDate = 'terminationDate',\r\n terminationType = 'terminationType',\r\n optionHolder = 'optionHolder',\r\n optionsGranted = 'optionsGranted',\r\n type = 'type',\r\n status = 'status',\r\n vestingSchedule = 'vestingSchedule',\r\n vestingCommencementDate = 'vestingCommencementDate',\r\n employeeId = 'employeeId',\r\n location = 'location',\r\n vestingFunction = 'vestingFunction',\r\n forfeitureRate = 'forfeitureRate',\r\n performanceHurdleId = 'performanceHurdleId',\r\n department = 'department',\r\n departmentA = 'departmentA',\r\n departmentB = 'departmentB',\r\n departmentC = 'departmentC',\r\n entity = 'entity',\r\n leave = 'leave',\r\n fileName = 'fileName',\r\n grantId = 'grantId',\r\n grantPlan = 'grantPlan',\r\n grantPlanNew = 'grantPlanNew',\r\n schemeValuation = 'schemeValuation',\r\n reportTimeStamp = 'reportTimeStamp',\r\n plan = 'plan',\r\n}\r\n\r\nconst commonColumnConfigs: Record>> = {\r\n [CommonColumnName.startDate]: {\r\n name: 'startDate',\r\n title: 'Start Date',\r\n dateFormat: Utils.formatDate.DateFormat.MonthDayYear,\r\n },\r\n [CommonColumnName.leaveStartDate]: {\r\n name: 'leaveStartDate',\r\n title: 'Leave Start Date',\r\n cls: bgCyanFgWhiteClassName,\r\n dateFormat: Utils.formatDate.DateFormat.MonthDayYear,\r\n },\r\n [CommonColumnName.leaveEndDate]: {\r\n name: 'leaveEndDate',\r\n title: 'Leave End Date',\r\n cls: bgCyanFgWhiteClassName,\r\n dateFormat: Utils.formatDate.DateFormat.MonthDayYear,\r\n },\r\n [CommonColumnName.grantDate]: {\r\n name: 'grantDate',\r\n title: 'Grant Date',\r\n dateFormat: Utils.formatDate.DateFormat.MonthDayYear,\r\n },\r\n [CommonColumnName.terminationDate]: {\r\n name: 'terminationDate',\r\n title: 'Termination Date',\r\n dateFormat: Utils.formatDate.DateFormat.MonthDayYear,\r\n },\r\n [CommonColumnName.terminationType]: {\r\n name: 'terminationType',\r\n title: 'Termination Type',\r\n },\r\n [CommonColumnName.optionHolder]: {\r\n name: 'optionholder',\r\n title: 'Optionholder',\r\n },\r\n [CommonColumnName.optionsGranted]: {\r\n name: 'optionsGranted',\r\n title: 'Options Granted',\r\n },\r\n [CommonColumnName.type]: {\r\n name: 'type',\r\n title: 'Type',\r\n },\r\n [CommonColumnName.status]: {\r\n name: 'status',\r\n title: 'Status',\r\n renderCell: (row, t): string => (row.status ? t(row.status) : ''),\r\n },\r\n [CommonColumnName.vestingSchedule]: {\r\n name: 'vestingSchedule',\r\n title: 'Vesting Schedule',\r\n },\r\n [CommonColumnName.vestingCommencementDate]: {\r\n name: 'vestingCommencementDate',\r\n title: 'Vesting Commencement Date',\r\n dateFormat: Utils.formatDate.DateFormat.MonthDayYear,\r\n },\r\n [CommonColumnName.employeeId]: {\r\n name: 'employeeId',\r\n title: 'Employee ID',\r\n },\r\n [CommonColumnName.location]: {\r\n name: 'location',\r\n title: 'Location',\r\n },\r\n [CommonColumnName.vestingFunction]: {\r\n name: 'vestingFunction',\r\n title: 'Vesting Function',\r\n },\r\n [CommonColumnName.forfeitureRate]: {\r\n name: 'forfeitureRate',\r\n title: 'Forfeiture Rate',\r\n },\r\n [CommonColumnName.performanceHurdleId]: {\r\n name: 'performanceHurdleId',\r\n title: 'Performance Hurdle ID',\r\n },\r\n [CommonColumnName.department]: {\r\n name: 'department',\r\n title: 'Department',\r\n },\r\n [CommonColumnName.departmentA]: {\r\n name: 'departmentA',\r\n title: 'Department A',\r\n renderCell: (row, t): string => (row.departmentA ? t(row.departmentA) : ''),\r\n },\r\n [CommonColumnName.departmentB]: {\r\n name: 'departmentB',\r\n title: 'Department B',\r\n renderCell: (row, t): string => (row.departmentB ? t(row.departmentB) : ''),\r\n },\r\n [CommonColumnName.departmentC]: {\r\n name: 'departmentC',\r\n title: 'Department C',\r\n renderCell: (row, t): string => (row.departmentC ? t(row.departmentC) : ''),\r\n },\r\n [CommonColumnName.entity]: {\r\n name: 'entity',\r\n title: 'Entity',\r\n renderCell: (row, t): string => (row.entity ? t(row.entity) : ''),\r\n },\r\n [CommonColumnName.leave]: {\r\n name: 'leave',\r\n title: 'Leave',\r\n renderCell: (row, t): string => (row.leave ? t(row.leave) : ''),\r\n },\r\n [CommonColumnName.fileName]: {\r\n name: 'fileName',\r\n title: 'File Name',\r\n cls: bgCyanFgWhiteClassName,\r\n renderCell: (row, t): string => (row.fileName ? t(row.fileName) : ''),\r\n },\r\n [CommonColumnName.grantId]: {\r\n name: 'grantId',\r\n title: 'Grant ID',\r\n },\r\n [CommonColumnName.id]: {\r\n name: 'id',\r\n title: 'Id',\r\n isLink: true,\r\n },\r\n [CommonColumnName.grantPlan]: {\r\n name: 'grantScheme',\r\n title: 'Grant Plan',\r\n },\r\n [CommonColumnName.grantPlanNew]: {\r\n name: 'grantPlan',\r\n title: 'Grant Plan',\r\n },\r\n [CommonColumnName.schemeValuation]: {\r\n name: 'schemeValuation',\r\n title: 'Scheme Valuation',\r\n dateFormat: Utils.formatDate.DateFormat.MonthYear,\r\n },\r\n [CommonColumnName.reportTimeStamp]: {\r\n name: 'reportTimeStamp',\r\n title: 'Report Time Stamp',\r\n },\r\n [CommonColumnName.plan]: {\r\n name: 'plan',\r\n title: 'Plan',\r\n dateFormat: Utils.formatDate.DateFormat.FullYearFullMonth,\r\n },\r\n};\r\n\r\nexport class GridColumnConfig {\r\n public static ShareRegisterConfig: Array> = [\r\n commonColumnConfigs[CommonColumnName.id],\r\n commonColumnConfigs[CommonColumnName.optionHolder],\r\n commonColumnConfigs[CommonColumnName.optionsGranted],\r\n commonColumnConfigs[CommonColumnName.grantDate],\r\n commonColumnConfigs[CommonColumnName.vestingSchedule],\r\n commonColumnConfigs[CommonColumnName.vestingCommencementDate],\r\n commonColumnConfigs[CommonColumnName.employeeId],\r\n {\r\n ...commonColumnConfigs[CommonColumnName.location],\r\n cls: bgCyanFgWhiteClassName,\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantPlanNew],\r\n cls: bgCyanFgWhiteClassName,\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.vestingFunction],\r\n cls: bgCyanFgWhiteClassName,\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.forfeitureRate],\r\n cls: bgCyanFgWhiteClassName,\r\n },\r\n // {\r\n // ...commonColumnConfigs[CommonColumnName.department],\r\n // cls: bgCyanFgWhiteClassName,\r\n // },\r\n // {\r\n // ...commonColumnConfigs[CommonColumnName.leave],\r\n // cls: bgCyanFgWhiteClassName,\r\n // },\r\n commonColumnConfigs[CommonColumnName.fileName],\r\n ];\r\n\r\n public static VestingScheduleConfig: Array> = [\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantId],\r\n isLink: true,\r\n title: 'CustomVestingSchedules.CustomVestingTable.GrantIdColumnTitle',\r\n },\r\n {\r\n name: 'scheduleName',\r\n title: 'CustomVestingSchedules.CustomVestingTable.VestingScheduleColumnTitle',\r\n },\r\n {\r\n name: 'grantLife',\r\n title: 'CustomVestingSchedules.CustomVestingTable.GrantLifeColumnTitle',\r\n },\r\n {\r\n name: 'vestingCommencement',\r\n title: 'CustomVestingSchedules.CustomVestingTable.VestingCommencementColumnTitle',\r\n dateFormat: Utils.formatDate.DateFormat.MonthDayYear,\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantDate],\r\n title: 'CustomVestingSchedules.CustomVestingTable.GrantDateColumnTitle',\r\n },\r\n {\r\n name: 'totalOptions', // INFO: title must be Initial Options but key stay as totalOptions\r\n title: 'CustomVestingSchedules.CustomVestingTable.InitialOptionsColumnTitle',\r\n },\r\n {\r\n name: 'cliff',\r\n title: 'CustomVestingSchedules.CustomVestingTable.CliffColumnTitle',\r\n renderCell: (row, t): string => (row.cliff ? t(row.cliff) : ''),\r\n },\r\n {\r\n name: 'cliffDuration',\r\n title: 'CustomVestingSchedules.CustomVestingTable.CliffDurationColumnTitle',\r\n },\r\n {\r\n name: 'cliffShares',\r\n title: 'CustomVestingSchedules.CustomVestingTable.CliffSharesColumnTitle',\r\n },\r\n {\r\n name: 'linearVesting',\r\n title: 'CustomVestingSchedules.CustomVestingTable.LinearVestingColumnTitle',\r\n renderCell: (row, t): string => (row.linearVesting ? t(row.linearVesting) : ''),\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.leave],\r\n title: 'CustomVestingSchedules.CustomVestingTable.LeaveColumnTitle',\r\n },\r\n {\r\n name: 'leaveStart',\r\n title: 'CustomVestingSchedules.CustomVestingTable.LeaveStartDateColumnTitle',\r\n },\r\n {\r\n name: 'leaveEnd',\r\n title: 'CustomVestingSchedules.CustomVestingTable.LeaveEndDateColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.fileName],\r\n title: 'CustomVestingSchedules.CustomVestingTable.FileNameColumnTitle',\r\n },\r\n ];\r\n\r\n public static GenericVestingScheduleConfig: Array> = [\r\n {\r\n name: 'scheduleName',\r\n title: 'CustomVestingSchedules.GenericVestingTable.ScheduleNameColumnTitle',\r\n isLink: true,\r\n },\r\n {\r\n name: 'months',\r\n title: 'CustomVestingSchedules.GenericVestingTable.MonthsColumnTitle',\r\n },\r\n ];\r\n\r\n public static EmployeeStatusConfig: Array> = [\r\n { ...commonColumnConfigs[CommonColumnName.id], title: 'ID' },\r\n {\r\n name: 'optionHolder',\r\n title: 'Optionholder',\r\n },\r\n commonColumnConfigs[CommonColumnName.terminationType],\r\n commonColumnConfigs[CommonColumnName.terminationDate],\r\n commonColumnConfigs[CommonColumnName.startDate],\r\n commonColumnConfigs[CommonColumnName.location],\r\n commonColumnConfigs[CommonColumnName.entity],\r\n commonColumnConfigs[CommonColumnName.departmentA],\r\n commonColumnConfigs[CommonColumnName.departmentB],\r\n commonColumnConfigs[CommonColumnName.departmentC],\r\n commonColumnConfigs[CommonColumnName.leaveStartDate],\r\n commonColumnConfigs[CommonColumnName.leaveEndDate],\r\n commonColumnConfigs[CommonColumnName.fileName],\r\n ];\r\n\r\n public static GrantValuationConfig: Array> = [\r\n {\r\n ...commonColumnConfigs[CommonColumnName.plan],\r\n title: 'GrantValuation.Table.PlanColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.fileName],\r\n title: 'GrantValuation.Table.FileNameColumnTitle',\r\n },\r\n ] as BM.ColumnConfiguration[];\r\n\r\n public static FilesConfig: Array> = [\r\n {\r\n name: 'fileName',\r\n title: 'Files.Table.NameColumnTitle',\r\n isLink: true,\r\n },\r\n {\r\n name: 'size',\r\n title: 'Files.Table.SizeColumnTitle',\r\n },\r\n {\r\n name: 'createdDate',\r\n title: 'Files.Table.DateCreatedColumnTitle',\r\n },\r\n ];\r\n\r\n public static ActivityLogsConfig: Array> = [\r\n {\r\n name: 'timeStamp',\r\n title: 'ActivityLogs.Table.TimestampColumnTitle',\r\n dateFormat: Utils.formatDate.DateFormat.FullWeekdayFullMonthDayHoursMinutesSeconds,\r\n },\r\n {\r\n name: 'details',\r\n title: 'ActivityLogs.Table.DetailsColumnTitle',\r\n renderCell: (row, t): string => (row.details ? t(row.details) : ''),\r\n },\r\n {\r\n name: 'user',\r\n title: 'ActivityLogs.Table.UserColumnTitle',\r\n },\r\n ];\r\n\r\n public static GenerateExpensesConfig: Array> = [\r\n commonColumnConfigs[CommonColumnName.reportTimeStamp],\r\n commonColumnConfigs[CommonColumnName.grantId],\r\n commonColumnConfigs[CommonColumnName.optionHolder],\r\n commonColumnConfigs[CommonColumnName.grantDate],\r\n commonColumnConfigs[CommonColumnName.terminationDate],\r\n commonColumnConfigs[CommonColumnName.terminationType],\r\n commonColumnConfigs[CommonColumnName.location],\r\n commonColumnConfigs[CommonColumnName.grantPlan],\r\n commonColumnConfigs[CommonColumnName.vestingSchedule],\r\n commonColumnConfigs[CommonColumnName.schemeValuation],\r\n {\r\n name: 'vestPercentage',\r\n title: 'Vest (%)',\r\n },\r\n {\r\n name: 'vestNo',\r\n title: 'Vest (No)',\r\n },\r\n {\r\n name: 'vestM',\r\n title: 'Vest (m)',\r\n },\r\n {\r\n name: 'optionValue',\r\n title: 'Option Value',\r\n },\r\n {\r\n name: 'vestingSatisfied',\r\n title: 'Vesting Satisfied',\r\n dateFormat: Utils.formatDate.DateFormat.MonthYear,\r\n },\r\n commonColumnConfigs[CommonColumnName.status],\r\n commonColumnConfigs[CommonColumnName.optionsGranted],\r\n commonColumnConfigs[CommonColumnName.vestingCommencementDate],\r\n {\r\n name: 'months',\r\n title: 'Months',\r\n },\r\n commonColumnConfigs[CommonColumnName.vestingFunction],\r\n commonColumnConfigs[CommonColumnName.forfeitureRate],\r\n commonColumnConfigs[CommonColumnName.departmentA],\r\n commonColumnConfigs[CommonColumnName.departmentB],\r\n commonColumnConfigs[CommonColumnName.departmentC],\r\n commonColumnConfigs[CommonColumnName.entity],\r\n ];\r\n\r\n public static SummaryTotalConfig: Array> = [\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantDate],\r\n title: 'SbpExpenseReports.SummaryTotalTab.Tables.GrantDateColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantPlan],\r\n title: 'SbpExpenseReports.SummaryTotalTab.Tables.GrantPlanColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.location],\r\n title: 'SbpExpenseReports.SummaryTotalTab.Tables.LocationColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.status],\r\n title: 'SbpExpenseReports.SummaryTotalTab.Tables.StatusColumnTitle',\r\n },\r\n ];\r\n\r\n public static EmployeeViewConfig: Array> = [\r\n {\r\n ...commonColumnConfigs[CommonColumnName.optionHolder],\r\n title: 'SbpExpenseReports.EmployeeViewTab.Tables.OptionHolderColumnTitle}',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantDate],\r\n title: 'SbpExpenseReports.EmployeeViewTab.Tables.GrantDateColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantPlan],\r\n title: 'SbpExpenseReports.EmployeeViewTab.Tables.GrantPlanColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.schemeValuation],\r\n title: 'SbpExpenseReports.EmployeeViewTab.Tables.SchemeValuationColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.location],\r\n title: 'SbpExpenseReports.EmployeeViewTab.Tables.LocationColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.departmentA],\r\n title: 'SbpExpenseReports.EmployeeViewTab.Tables.DepartmentAColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.departmentB],\r\n title: 'SbpExpenseReports.EmployeeViewTab.Tables.DepartmentBColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.departmentC],\r\n title: 'SbpExpenseReports.EmployeeViewTab.Tables.DepartmentCColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.entity],\r\n title: 'SbpExpenseReports.EmployeeViewTab.Tables.EntityColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.status],\r\n title: 'SbpExpenseReports.EmployeeViewTab.Tables.StatusColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantId],\r\n title: 'SbpExpenseReports.EmployeeViewTab.Tables.GrantIdColumnTitle',\r\n },\r\n ];\r\n\r\n public static GeographicalViewConfig: Array> = [\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantDate],\r\n title: 'SbpExpenseReports.GeographicalViewTab.Tables.GrantDateColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantPlan],\r\n title: 'SbpExpenseReports.GeographicalViewTab.Tables.GrantPlanColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.location],\r\n title: 'SbpExpenseReports.GeographicalViewTab.Tables.LocationColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.status],\r\n title: 'SbpExpenseReports.GeographicalViewTab.Tables.StatusColumnTitle',\r\n },\r\n ];\r\n\r\n public static DepartmentViewConfig: Array> = [\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantDate],\r\n title: 'SbpExpenseReports.DepartmentViewTab.Tables.GrantDateColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantPlan],\r\n title: 'SbpExpenseReports.DepartmentViewTab.Tables.GrantPlanColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.location],\r\n title: 'SbpExpenseReports.DepartmentViewTab.Tables.LocationColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.status],\r\n title: 'SbpExpenseReports.DepartmentViewTab.Tables.StatusColumnTitle',\r\n },\r\n ];\r\n\r\n public static PlanViewConfig: Array> = [\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantDate],\r\n title: 'SbpExpenseReports.PlanViewTab.Tables.GrantDateColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantPlan],\r\n title: 'SbpExpenseReports.PlanViewTab.Tables.GrantPlanColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.location],\r\n title: 'SbpExpenseReports.PlanViewTab.Tables.LocationColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.status],\r\n title: 'SbpExpenseReports.PlanViewTab.Tables.StatusColumnTitle',\r\n },\r\n ];\r\n\r\n public static ProvisionalExpenseConfig: Array> = [\r\n {\r\n ...commonColumnConfigs[CommonColumnName.reportTimeStamp],\r\n title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.ReportTimeStampColumnTitle',\r\n },\r\n {\r\n name: 'provisionDate',\r\n title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.ProvisionDateColumnTitle',\r\n dateFormat: Utils.formatDate.DateFormat.MonthYear,\r\n },\r\n commonColumnConfigs[CommonColumnName.employeeId],\r\n { name: 'employeeName', title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.EmployeeNameColumnTitle' },\r\n {\r\n name: 'offerDate',\r\n title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.OfferDateColumnTitle',\r\n dateFormat: Utils.formatDate.DateFormat.MonthDayYear,\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.startDate],\r\n title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.StartDateColumnTitle',\r\n },\r\n { name: 'options', title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.OptionsColumnTitle' },\r\n { name: 'valuation', title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.ValuationColumnTitle' },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.vestingSchedule],\r\n title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.VestingScheduleColumnTitle',\r\n },\r\n {\r\n name: 'provisionExpenseValue',\r\n title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.ProvisionExpenseColumnTitle',\r\n },\r\n { name: 'inSchedule', title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.InScheduleColumnTitle' },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.location],\r\n title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.LocationColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.plan],\r\n title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.PlanColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.fileName],\r\n title: 'SbpExpensesReports.ProvisionalExpensePanel.Table.FileNameColumnTitle',\r\n },\r\n ];\r\n\r\n public static TrueUpReportConfig: Array> = [\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantDate],\r\n title: 'SbpExpensesReports.ExpenseTrueUpPanel.Tables.GrantDateColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.grantPlan],\r\n title: 'SbpExpensesReports.ExpenseTrueUpPanel.Tables.GrantPlanColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.location],\r\n title: 'SbpExpensesReports.ExpenseTrueUpPanel.Tables.LocationColumnTitle',\r\n },\r\n {\r\n ...commonColumnConfigs[CommonColumnName.status],\r\n title: 'SbpExpensesReports.ExpenseTrueUpPanel.Tables.StatusColumnTitle',\r\n },\r\n ] as BM.ColumnConfiguration[];\r\n // todo: will be updated for the appropriate table columns of expense outlook\r\n\r\n public static ExpenseOutlookViewConfig: Array> = [];\r\n}\r\n","import { IFileUploadingApiEntity, IFileUploadingView, IBeforeUploadWarningModalData } from '../models/models.bl';\r\n\r\nexport const FILE_UPLOADING_VIEW_MAP: Record = Object.freeze({\r\n ShareRegister: 'shareRegister',\r\n employee: 'employeeStatus',\r\n valuation: 'grandValuation',\r\n provisionExpense: 'provisionExpense',\r\n CustomVestingSchedule: 'customVesting',\r\n});\r\n\r\nexport const BeforeUploadWarningModalData: Record = {\r\n shareRegister: {\r\n visible: true,\r\n title: 'ShareRegister.ProceedModal.Title',\r\n text: 'ShareRegister.ProceedModal.BeforeUploadDescription',\r\n },\r\n customVesting: {\r\n visible: true,\r\n title: 'CustomVestingSchedules.CustomVestingProceedModal.Title',\r\n text: 'CustomVestingSchedules.CustomVestingProceedModal.BeforeUploadDescription',\r\n },\r\n grandValuation: {\r\n visible: true,\r\n title: 'GrantValuation.ProceedModal.Title',\r\n text: 'GrantValuation.ProceedModal.BeforeUploadDescription',\r\n },\r\n employeeStatus: {\r\n visible: true,\r\n title: 'EmployeeStatus.ProceedModal.Title',\r\n text: 'EmployeeStatus.ProceedModal.BeforeUploadDescription',\r\n },\r\n provisionExpense: {\r\n visible: true,\r\n title: 'SbpExpensesReports.ProvisionalExpensePanel.ProceedModal.Title',\r\n text: 'SbpExpensesReports.ProvisionalExpensePanel.ProceedModal.BeforeUploadDescription',\r\n },\r\n};\r\n","export const onlySumRows = {\r\n 'SUM of Vested': 'SUM of Vested',\r\n 'SUM of Reverse': 'SUM of Reverse',\r\n 'SUM TOTAL': 'SUM TOTAL',\r\n} as const;\r\n","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgSpeedometer(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 11,\n viewBox: \"0 0 16 11\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.861 0.844913L14.0764 2.78995C15.2803 4.25042 15.9924 6.21324 15.9924 8.50173C15.9924 8.77769 15.7686 9.00139 15.4926 9.00139C15.2166 9.00139 14.9928 8.77769 14.9928 8.50173C14.9928 6.51081 14.4014 4.8104 13.3939 3.53497L10.6238 6.55653C10.8602 6.98521 10.9948 7.47794 10.9948 8.00208C10.9948 9.65779 9.65225 11 7.99618 11C6.34012 11 4.99761 9.65779 4.99761 8.00208C4.99761 6.34638 6.34012 5.00416 7.99618 5.00416C8.52044 5.00416 9.01328 5.13867 9.44205 5.37506L12.4814 2.58985C11.2848 1.57676 9.7347 1.00694 7.99618 1.00694C4.00015 1.00694 0.999523 4.01744 0.999523 8.50173C0.999523 8.77769 0.775772 9.00139 0.499761 9.00139C0.223751 9.00139 0 8.77769 0 8.50173C0 3.46632 3.44734 0.00763172 7.99618 0.00763172C10.0277 0.00763172 11.8396 0.697505 13.2228 1.9096L15.1549 0.138963C15.6252 -0.29206 16.2921 0.374706 15.861 0.844913ZM7.99618 6.00347C6.89214 6.00347 5.99714 6.89828 5.99714 8.00208C5.99714 9.10588 6.89214 10.0007 7.99618 10.0007C9.10023 10.0007 9.99523 9.10588 9.99523 8.00208C9.99523 6.89828 9.10023 6.00347 7.99618 6.00347Z\",\n fill: \"#2A5599\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSpeedometer);\nexport default __webpack_public_path__ + \"static/media/speedometer.87daeb4584c21b8b3bb08fe052bafe06.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgBarChartArrowUp(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 15,\n viewBox: \"0 0 16 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.5 13C0.776142 13 1 13.2239 1 13.5V14.5C1 14.7761 0.776142 15 0.5 15C0.223858 15 5.7129e-08 14.7761 5.7129e-08 14.5V13.5C5.7129e-08 13.2239 0.223858 13 0.5 13ZM3.5 11C3.77614 11 4 11.2239 4 11.5V14.5C4 14.7761 3.77614 15 3.5 15C3.22386 15 3 14.7761 3 14.5V11.5C3 11.2239 3.22386 11 3.5 11ZM6.5 9C6.77614 9 7 9.22386 7 9.5V14.5C7 14.7761 6.77614 15 6.5 15C6.22386 15 6 14.7761 6 14.5V9.5C6 9.22386 6.22386 9 6.5 9ZM9.5 9C9.77614 9 10 9.22386 10 9.5V14.5C10 14.7761 9.77614 15 9.5 15C9.22386 15 9 14.7761 9 14.5V9.5C9 9.22386 9.22386 9 9.5 9ZM12.5 7C12.7761 7 13 7.22386 13 7.5V14.5C13 14.7761 12.7761 15 12.5 15C12.2239 15 12 14.7761 12 14.5V7.5C12 7.22386 12.2239 7 12.5 7ZM15.5 7C15.7761 7 16 7.22386 16 7.5V14.5C16 14.7761 15.7761 15 15.5 15C15.2239 15 15 14.7761 15 14.5V7.5C15 7.22386 15.2239 7 15.5 7ZM11.5 0L15.5428 0.00182295L15.6281 0.0166083L15.691 0.0377922L15.767 0.077188L15.8221 0.117594L15.8824 0.177876L15.9112 0.21534L15.9533 0.288604L15.9834 0.371861L15.9979 0.454214L16 0.5V4.5C16 4.77614 15.7761 5 15.5 5C15.2545 5 15.0504 4.82312 15.0081 4.58988L15 4.5L15 1.706L9.85355 6.85355C9.77854 6.92857 9.68214 6.97728 9.57869 6.99377L9.5 7H5.67539L0.812348 10.8904C0.596717 11.0629 0.28207 11.028 0.109566 10.8123C-0.0437719 10.6207 -0.0331862 10.3508 0.122504 10.172L0.187653 10.1096L5.18765 6.10957C5.25414 6.05637 5.33273 6.02134 5.41577 6.00715L5.5 6H9.29289L14.292 1H11.5C11.2545 1 11.0504 0.823125 11.0081 0.589876L11 0.5C11 0.223858 11.2239 0 11.5 0Z\",\n fill: \"#00A3E0\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBarChartArrowUp);\nexport default __webpack_public_path__ + \"static/media/barChartArrowUp.cba3c43d32424316686fe799dc0a0b24.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCalendarTick(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 15,\n viewBox: \"0 0 30 30\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23 0C23.5523 0 24 0.447715 24 1V4H29C29.5523 4 30 4.44772 30 5V29C30 29.5523 29.5523 30 29 30H1C0.447715 30 0 29.5523 0 29V5C0 4.44772 0.447715 4 1 4H6V1C6 0.447715 6.44772 0 7 0C7.55228 0 8 0.447715 8 1V4H22V1C22 0.447715 22.4477 0 23 0ZM28 6H2V28H28V6ZM13 19.5858L20.2929 12.2929C20.6834 11.9024 21.3166 11.9024 21.7071 12.2929C22.0542 12.64 22.0928 13.1789 21.8228 13.5686L21.7071 13.7071L13.7071 21.7071C13.36 22.0542 12.8211 22.0928 12.4314 21.8228L12.2929 21.7071L8.29289 17.7071C7.90237 17.3166 7.90237 16.6834 8.29289 16.2929C8.64003 15.9458 9.17887 15.9072 9.56861 16.1772L9.70711 16.2929L13 19.5858Z\",\n fill: \"#ED8B00\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCalendarTick);\nexport default __webpack_public_path__ + \"static/media/calendarTick.b1a0fde091ca534d87010951ac1bb1ea.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCurrency(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 13,\n viewBox: \"0 0 18 13\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.5 2C15.7761 2 16 2.22386 16 2.5V12.5C16 12.7761 15.7761 13 15.5 13H0.5C0.223858 13 0 12.7761 0 12.5V2.5C0 2.22386 0.223858 2 0.5 2H15.5ZM15 3H1V12H15V3ZM2.5 0H17.5C17.7455 0 17.9496 0.176875 17.9919 0.410124L18 0.5V10.5C18 10.7761 17.7761 11 17.5 11C17.2545 11 17.0504 10.8231 17.0081 10.5899L17 10.5V1H2.5C2.22386 1 2 0.776142 2 0.5C2 0.25454 2.17688 0.0503916 2.41012 0.00805567L2.5 0ZM8 4C9.50235 4 10.5107 4.40333 10.9472 5.27639C11.0707 5.52338 10.9706 5.82372 10.7236 5.94721C10.4766 6.07071 10.1763 5.9706 10.0528 5.72361C9.82265 5.26333 9.16432 5 8 5C6.60803 5 6 5.50669 6 6C6 6.21521 6.01116 6.31568 6.05413 6.4188C6.18796 6.73999 6.66813 6.97142 7.78338 6.99754L8.25152 7.0034C9.72495 7.04417 10.5583 7.45106 10.8689 8.19658C10.9775 8.45709 11 8.65966 11 9C11 10.09 9.90803 11 8 11C6.49765 11 5.48932 10.5967 5.05279 9.72361C4.92929 9.47662 5.0294 9.17628 5.27639 9.05279C5.52338 8.92929 5.82372 9.0294 5.94721 9.27639C6.17735 9.73667 6.83568 10 8 10C9.39197 10 10 9.49331 10 9C10 8.78479 9.98884 8.68432 9.94587 8.5812C9.81204 8.26001 9.33187 8.02858 8.21662 8.00246L7.74848 7.9966C6.27505 7.95583 5.44169 7.54894 5.13105 6.80342C5.02251 6.54291 5 6.34034 5 6C5 4.90997 6.09197 4 8 4Z\",\n fill: \"#26890D\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCurrency);\nexport default __webpack_public_path__ + \"static/media/currency.cb20cf12aa05b33ae21aabb10a8ac56c.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgUserOutlined(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 14,\n viewBox: \"0 0 12 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.5 7C10.3686 7 11.8951 8.46428 11.9948 10.308L12 10.5V13.5C12 13.7761 11.7761 14 11.5 14C11.2545 14 11.0504 13.8231 11.0081 13.5899L11 13.5V10.5C11 9.17452 9.96846 8.08996 8.66438 8.00532L8.5 8H3.5C2.17452 8 1.08996 9.03154 1.00532 10.3356L1 10.5V13.5C1 13.7761 0.776142 14 0.5 14C0.25454 14 0.0503916 13.8231 0.00805567 13.5899L0 13.5V10.5C0 8.63144 1.46428 7.10487 3.30796 7.00518L3.5 7H8.5ZM6 0C7.65685 0 9 1.34315 9 3C9 4.65685 7.65685 6 6 6C4.34315 6 3 4.65685 3 3C3 1.34315 4.34315 0 6 0ZM6 1C4.89543 1 4 1.89543 4 3C4 4.10457 4.89543 5 6 5C7.10457 5 8 4.10457 8 3C8 1.89543 7.10457 1 6 1Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgUserOutlined);\nexport default __webpack_public_path__ + \"static/media/userOutlined.284c6564cbac715b42b44bcad30e2dfb.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgPieChart(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.47492 1.00107C7.76333 0.982148 8.00766 1.21098 8.00766 1.5L8.00764 8.99068L15.5 8.99066C15.789 8.99066 16.0179 9.235 15.9989 9.52341C15.7234 13.7203 12.2359 16.9983 8.00819 16.9983C3.58186 16.9983 0 13.4165 0 8.99013C0 4.76268 3.27772 1.27649 7.47492 1.00107ZM7.00766 2.05418L6.77088 2.09201C3.47517 2.67647 1 5.55316 1 8.99013C1 12.8642 4.13415 15.9983 8.00819 15.9983C11.5273 15.9983 14.4599 13.4036 14.9458 9.99066L7.50764 9.99068C7.2315 9.99068 7.00764 9.76682 7.00764 9.49068L7.00766 2.05418ZM9.59824 0.00801049C11.4466 0.337069 13.1362 1.228 14.4542 2.54613C15.7721 3.86421 16.6629 5.55387 16.992 7.40235C17.0474 7.71386 16.8079 7.9998 16.4915 7.99981L9.50839 8.00002C9.22759 8.00002 9 7.77239 9 7.49159L9.00077 0.508457C9.0008 0.192063 9.28675 -0.0474435 9.59824 0.00801049ZM10.0007 1.25184L10.0001 6.99999L15.7481 6.99981C15.3918 5.61508 14.6685 4.35436 13.6572 3.343C12.7237 2.4094 11.5778 1.72121 10.318 1.34056L10.0007 1.25184Z\",\n fill: \"#004F59\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPieChart);\nexport default __webpack_public_path__ + \"static/media/pieChart.7c7977e21d1a40a8a884197f284adf0b.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgCompareDocuments(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 16,\n viewBox: \"0 0 13 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.5 2C10.7455 2 10.9496 2.17688 10.9919 2.41012L11 2.5V15.5C11 15.7455 10.8231 15.9496 10.5899 15.9919L10.5 16H0.5C0.25454 16 0.0503916 15.8231 0.00805569 15.5899L0 15.5V2.5C0 2.25454 0.176875 2.05039 0.410124 2.00806L0.5 2H10.5ZM1 15H10V11H6.707L7.85355 12.1464C8.02712 12.32 8.0464 12.5894 7.91141 12.7843L7.85355 12.8536C7.67999 13.0271 7.41056 13.0464 7.21569 12.9114L7.14645 12.8536L5.14645 10.8536L5.10896 10.8117L5.06675 10.7498L5.03761 10.6906L5.01661 10.6281L5.00545 10.5741L5.00182 10.5428L5.00011 10.4895C5.00055 10.4683 5.00234 10.4471 5.00546 10.4261L5 10.5L5.00282 10.4466L5.01661 10.3719L5.03779 10.309L5.08859 10.2157L5.13459 10.1587L7.14645 8.14645C7.34171 7.95118 7.65829 7.95118 7.85355 8.14645C8.02712 8.32001 8.0464 8.58944 7.91141 8.78431L7.85355 8.85355L6.707 10H10V3H1V7H4.293L3.14645 5.85355L3.08859 5.78431C2.9536 5.58944 2.97288 5.32001 3.14645 5.14645C3.32001 4.97288 3.58944 4.9536 3.78431 5.08859L3.85355 5.14645L5.88241 7.17786L5.93325 7.25023L5.96239 7.30941L5.98339 7.37186L5.99481 7.42772L6 7.5L5.99718 7.55343L5.98339 7.62815L5.96221 7.69104L5.92281 7.76701L5.88241 7.82214L3.85355 9.85355L3.78431 9.91141C3.6138 10.0295 3.3862 10.0295 3.21569 9.91141L3.14645 9.85355L3.08859 9.78431C2.97047 9.6138 2.97047 9.3862 3.08859 9.21569L3.14645 9.14645L4.293 8H1V15ZM12.5 0C12.7455 0 12.9496 0.176875 12.9919 0.410124L13 0.5V13.5C13 13.7761 12.7761 14 12.5 14C12.2545 14 12.0504 13.8231 12.0081 13.5899L12 13.5V1H2.5C2.25454 1 2.05039 0.823125 2.00806 0.589876L2 0.5C2 0.25454 2.17688 0.0503916 2.41012 0.00805569L2.5 0H12.5Z\",\n fill: \"#6FC2B4\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCompareDocuments);\nexport default __webpack_public_path__ + \"static/media/compareDocuments.5bed8a15ba4fe09369529062bf40bc1e.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgBookOpen(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 14,\n viewBox: \"0 0 16 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.5 0C15.7761 0 16 0.223858 16 0.5V11.5C16 11.7761 15.7761 12 15.5 12C14.2079 12 12.9152 12.1616 11.6213 12.4851C10.4839 12.7694 9.47749 13.1782 8.60026 13.7106L8.27735 13.916L8.23356 13.9423L8.12924 13.9837L8.05567 13.9978L7.96574 13.9995L7.92328 13.995L7.85623 13.9796L7.81119 13.963L7.74965 13.9328L7.72265 13.916C6.77207 13.2823 5.65823 12.8049 4.37873 12.4851C3.08476 12.1616 1.79213 12 0.5 12C0.25454 12 0.0503916 11.8231 0.00805567 11.5899L0 11.5V0.5C0 0.223858 0.223858 0 0.5 0C1.87453 0 3.24857 0.171755 4.62127 0.514929C5.8543 0.823188 6.95486 1.27039 7.92125 1.85732L8 1.907L8.07875 1.85732C9.04514 1.27039 10.1457 0.823188 11.3787 0.514929C12.7514 0.171755 14.1255 0 15.5 0ZM1 1.00806V11.0076C2.20774 11.0442 3.41502 11.2134 4.62127 11.5149C5.52757 11.7415 6.3623 12.0431 7.12478 12.4202L7.5 12.6149V2.77232C6.59943 2.20967 5.55964 1.7803 4.37873 1.48507C3.57368 1.28381 2.76914 1.14522 1.96492 1.06922L1.48243 1.03113L1 1.00806ZM15 1.00806L14.5176 1.03113C13.5526 1.09229 12.5873 1.24355 11.6213 1.48507C10.4408 1.78019 9.40132 2.20936 8.50098 2.77171L8.5 12.613L8.87522 12.4202C9.6377 12.0431 10.4724 11.7415 11.3787 11.5149C12.585 11.2134 13.7923 11.0442 15 11.0076V1.00806Z\",\n fill: \"#012169\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBookOpen);\nexport default __webpack_public_path__ + \"static/media/book-open.96a7f055ad0f1ed71d30ffc8ab64c700.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgBarChart(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 12,\n viewBox: \"0 0 16 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.5 0C0.74546 0 0.949608 0.176875 0.991944 0.410124L1 0.5V11H15.5C15.7455 11 15.9496 11.1769 15.9919 11.4101L16 11.5C16 11.7455 15.8231 11.9496 15.5899 11.9919L15.5 12H0.5C0.25454 12 0.0503916 11.8231 0.00805567 11.5899L0 11.5V0.5C0 0.223858 0.223858 0 0.5 0ZM3.5 5C3.77614 5 4 5.22386 4 5.5V9.5C4 9.77614 3.77614 10 3.5 10C3.22386 10 3 9.77614 3 9.5V5.5C3 5.22386 3.22386 5 3.5 5ZM6.5 3C6.77614 3 7 3.22386 7 3.5V9.5C7 9.77614 6.77614 10 6.5 10C6.22386 10 6 9.77614 6 9.5V3.5C6 3.22386 6.22386 3 6.5 3ZM9.5 1C9.77614 1 10 1.22386 10 1.5V9.5C10 9.77614 9.77614 10 9.5 10C9.22386 10 9 9.77614 9 9.5V1.5C9 1.22386 9.22386 1 9.5 1ZM12.5 5C12.7761 5 13 5.22386 13 5.5V9.5C13 9.77614 12.7761 10 12.5 10C12.2239 10 12 9.77614 12 9.5V5.5C12 5.22386 12.2239 5 12.5 5Z\",\n fill: \"#86BC25\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBarChart);\nexport default __webpack_public_path__ + \"static/media/barChart.7924c73956c1d3e1531c9eee688ac30c.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgHouse(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 18,\n height: 16,\n viewBox: \"0 0 18 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.9567 0.00196023L9.04323 0.00195312C9.10075 0.00693359 9.1576 0.021875 9.21105 0.0467773L9.28835 0.0916015L17.7884 6.0916C18.014 6.25085 18.0677 6.56283 17.9085 6.78843C17.7669 6.98896 17.5047 7.05374 17.2897 6.95382L17.2117 6.90857L16 6.05309L16 15.5001C16 15.7762 15.7762 16.0001 15.5 16.0001H10.5C10.2239 16.0001 10 15.7762 10 15.5001V11.0001H8.00001V15.5001C8.00001 15.7762 7.77615 16.0001 7.50001 16.0001H2.50001C2.22387 16.0001 2.00001 15.7762 2.00001 15.5001L1.99997 6.05309L0.788352 6.90857C0.587819 7.05012 0.319036 7.02335 0.149938 6.85721L0.0915268 6.78843C-0.0500258 6.58789 -0.0232535 6.31911 0.142889 6.15001L0.211669 6.0916L8.71167 0.0916015C8.78535 0.0394559 8.87026 0.00945937 8.9567 0.00196023ZM9.00001 1.1121L3.00001 5.35878V15.0001H7.00001V10.5001C7.00001 10.2239 7.22387 10.0001 7.50001 10.0001H10.5C10.7762 10.0001 11 10.2239 11 10.5001V15.0001H15V5.35878L9.00001 1.1121Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHouse);\nexport default __webpack_public_path__ + \"static/media/house.72e17cc34007e21c0073dbbc2d8725f9.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgOpenFolder(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 12,\n viewBox: \"0 0 19 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.5 12C0.25454 12 0.0503916 11.8231 0.00805567 11.5899L0 11.5V0.5C0 0.25454 0.176875 0.0503916 0.410124 0.00805567L0.5 0H4.5C4.60609 0 4.7087 0.0337142 4.79351 0.0952092L4.85355 0.146447L6.707 2H15.5C15.7455 2 15.9496 2.17688 15.9919 2.41012L16 2.5V5H18C18.3271 5 18.5576 5.30499 18.4881 5.6095L18.4615 5.69231L15.9615 11.6923C15.895 11.852 15.7517 11.964 15.585 11.9927L15.5 12H0.5ZM15.166 11L17.249 6H2.838L1 10.595V11H15.166ZM4.293 1H1V7.902L2.03576 5.3143C2.10085 5.15159 2.24522 5.0369 2.41389 5.00745L2.5 5H15V3H6.5C6.39391 3 6.2913 2.96629 6.20649 2.90479L6.14645 2.85355L4.293 1Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgOpenFolder);\nexport default __webpack_public_path__ + \"static/media/openFolder.79fd037400977f5d4a22ce030ea76401.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nfunction SvgBackupLogs(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 15,\n viewBox: \"0 0 16 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8 0C12.4183 0 16 3.58172 16 8C16 10.3973 15.1902 12.0169 13.3536 13.8536C13.1583 14.0488 12.8417 14.0488 12.6464 13.8536C12.4512 13.6583 12.4512 13.3417 12.6464 13.1464C14.3098 11.4831 15 10.1027 15 8C15 4.13401 11.866 1 8 1C4.13401 1 1 4.13401 1 8C1 10.3348 1.83664 11.6903 4.00003 13.3711L4 10.5C4 10.2239 4.22386 10 4.5 10C4.77614 10 5 10.2239 5 10.5V14.5C5 14.7761 4.77614 15 4.5 15H0.5C0.223858 15 0 14.7761 0 14.5C0 14.2239 0.223858 14 0.5 14L3.18383 14.001C0.942559 12.2108 0 10.6175 0 8C0 3.58172 3.58172 0 8 0ZM7.5 8.79289L11.1464 5.14645C11.3417 4.95118 11.6583 4.95118 11.8536 5.14645C12.0271 5.32001 12.0464 5.58944 11.9114 5.78431L11.8536 5.85355L7.85355 9.85355C7.67999 10.0271 7.41056 10.0464 7.21569 9.91141L7.14645 9.85355L5.14645 7.85355C4.95118 7.65829 4.95118 7.34171 5.14645 7.14645C5.32001 6.97288 5.58944 6.9536 5.78431 7.08859L5.85355 7.14645L7.5 8.79289Z\",\n fill: \"black\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBackupLogs);\nexport default __webpack_public_path__ + \"static/media/backup-logs.586939bb3f120c35af186f007ac32b74.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactNode } from 'react';\r\nimport { NavLinkProps } from 'react-router-dom';\r\nimport { ReactComponent as PerformanceHurdlesIcon } from '../../assets/svg/speedometer.svg';\r\nimport { ReactComponent as ShareRegisterIcon } from '../../assets/svg/chart/barChartArrowUp.svg';\r\nimport { ReactComponent as CustomVestingSchedulesIcon } from '../../assets/svg/files/calendarTick.svg';\r\nimport { ReactComponent as GrantValuationIcon } from '../../assets/svg/currency.svg';\r\nimport { ReactComponent as EmployeeStatus } from '../../assets/svg/user/userOutlined.svg';\r\nimport { ReactComponent as ExpensesProvisionalIcon } from '../../assets/svg/chart/pieChart.svg';\r\nimport { ReactComponent as ExpensesTrueUpIcon } from '../../assets/svg/files/compareDocuments.svg';\r\nimport { ReactComponent as ExpensesJournalIcon } from '../../assets/svg/book-open.svg';\r\nimport { ReactComponent as ExpensesIcon } from '../../assets/svg/calculator.svg';\r\nimport { ReactComponent as ExpensesReportsIcon } from '../../assets/svg/chart/barChart.svg';\r\nimport { ReactComponent as HomeIcon } from '../../assets/svg/house.svg';\r\nimport { ReactComponent as FilesIcon } from '../../assets/svg/folder/openFolder.svg';\r\nimport { ReactComponent as ActivityLogsIcon } from '../../assets/svg/backup-logs.svg';\r\nimport { ROUTES } from './routes';\r\n\r\nexport type IconColorType =\r\n | 'white'\r\n | 'grey'\r\n | '#00A3E0'\r\n | '#0097A9'\r\n | '#2A5599'\r\n | '#ED8B00'\r\n | '#26890D'\r\n | '#000000'\r\n | '#004F59'\r\n | '#6FC2B4'\r\n | '#86BC25'\r\n | '#012169'\r\n | '#004F59';\r\n\r\nexport interface LinkOptionRouteType extends Omit {\r\n to: ROUTES | '';\r\n iconStart?: ReactNode;\r\n iconEnd?: ReactNode;\r\n label: string | ReactNode;\r\n iconStartColor?: IconColorType;\r\n iconEndColor?: IconColorType;\r\n groupHeader?: string;\r\n groupSubHeader?: string;\r\n labelForBradCrumbs?: string;\r\n parents?: ROUTES[];\r\n}\r\n\r\nexport interface LinkOptionType {\r\n header?: string;\r\n subHeader?: string;\r\n routes: LinkOptionRouteType[];\r\n}\r\n\r\nexport const manageAccountingInputs: LinkOptionType = {\r\n header: 'Common.ManageAccountingInputs.Title',\r\n subHeader: 'Common.ManageAccountingInputs.SubTitle',\r\n routes: [\r\n {\r\n iconStart: ,\r\n label: 'ShareRegister.PageTitle',\r\n to: ROUTES.shareRegister,\r\n iconStartColor: '#00A3E0',\r\n },\r\n {\r\n iconStart: ,\r\n label: 'PerformanceHurdles.PageTitle',\r\n to: ROUTES.performanceHurdles,\r\n iconStartColor: '#2A5599',\r\n },\r\n {\r\n iconStart: ,\r\n label: 'CustomVestingSchedules.PageTitle',\r\n to: ROUTES.customVestingSchedules,\r\n iconStartColor: '#ED8B00',\r\n },\r\n {\r\n iconStart: ,\r\n label: 'GrantValuation.PageTitle',\r\n to: ROUTES.grantValuation,\r\n iconStartColor: '#26890D',\r\n },\r\n {\r\n iconStart: ,\r\n label: 'EmployeeStatus.PageTitle',\r\n to: ROUTES.employeeStatus,\r\n iconStartColor: '#000000',\r\n },\r\n ],\r\n};\r\n\r\nexport const generateAndViewExpenses: LinkOptionType = {\r\n header: 'Common.GenerateAndViewExpenses.Title',\r\n subHeader: '',\r\n routes: [\r\n {\r\n iconStart: ,\r\n label: 'GenerateSbpExpenses.PageTitle',\r\n to: ROUTES.sbpExpenses,\r\n iconStartColor: '#0097A9',\r\n },\r\n {\r\n iconStart: ,\r\n label: 'SbpExpensesReports.PageTitle',\r\n to: ROUTES.sbpExpenseReports,\r\n iconStartColor: '#86BC25',\r\n },\r\n {\r\n iconStart: ,\r\n label: 'GenerateJournalEntries.PageTitle',\r\n labelForBradCrumbs: 'GenerateJournalEntries.PageBreadcrumb',\r\n to: ROUTES.sbpExpensesJournal,\r\n iconStartColor: '#012169',\r\n },\r\n ],\r\n};\r\n\r\nexport const additionalFeatures: LinkOptionType = {\r\n header: 'Common.GenerateAndViewExpenses.Title',\r\n subHeader: 'Common.GenerateAndViewExpenses.SubTitle',\r\n routes: [\r\n {\r\n iconStart: ,\r\n label: 'SbpExpensesReports.ProvisionalExpensePanel.Title',\r\n to: ROUTES.sbpExpensesProvisional,\r\n iconStartColor: '#004F59',\r\n },\r\n {\r\n iconStart: ,\r\n label: 'SbpExpensesReports.ExpenseTrueUpPanel.Title',\r\n to: ROUTES.sbpExpensesTrueUp,\r\n iconStartColor: '#6FC2B4',\r\n },\r\n ],\r\n};\r\n\r\nexport const files: LinkOptionType = {\r\n routes: [\r\n {\r\n iconStart: ,\r\n label: 'Files.PageTitle',\r\n to: ROUTES.files,\r\n iconStartColor: 'grey',\r\n },\r\n ],\r\n};\r\n\r\nexport const home: LinkOptionType = {\r\n routes: [\r\n {\r\n iconStart: ,\r\n label: 'Home.PageTitle',\r\n to: ROUTES.home,\r\n iconStartColor: 'grey',\r\n },\r\n ],\r\n};\r\n\r\nexport const activityLogs: LinkOptionType = {\r\n routes: [\r\n {\r\n iconStart: ,\r\n label: 'ActivityLogs.PageTitle',\r\n to: ROUTES.logs,\r\n iconStartColor: 'grey',\r\n },\r\n ],\r\n};\r\n\r\nexport const generateAndViewExpensesWithAdditionalRouteOptions: LinkOptionRouteType[] = [\r\n ...generateAndViewExpenses.routes.slice(0, 1),\r\n ...additionalFeatures.routes,\r\n ...generateAndViewExpenses.routes.slice(1),\r\n];\r\n\r\nconst manageAccountingInputsText: Record = {\r\n groupHeader: 'Common.ManageAccountingInputs.Title',\r\n groupSubHeader: 'Common.ManageAccountingInputs.SubTitle',\r\n};\r\n\r\nconst generateAndViewExpensesText: Record = {\r\n groupHeader: 'Common.GenerateAndViewExpenses.Title',\r\n};\r\n\r\nconst additionalFeaturesText: Record = {\r\n groupHeader: 'Common.GenerateAndViewExpenses.Title',\r\n groupSubHeader: 'Common.GenerateAndViewExpenses.SubTitle',\r\n};\r\n\r\nexport const breadcrumbOptions: Record = {\r\n [ROUTES.home]: {\r\n label: 'Home.PageTitle',\r\n to: ROUTES.home,\r\n },\r\n [ROUTES.shareRegister]: {\r\n ...manageAccountingInputsText,\r\n label: 'ShareRegister.PageTitle',\r\n to: ROUTES.shareRegister,\r\n },\r\n [ROUTES.performanceHurdles]: {\r\n ...manageAccountingInputsText,\r\n label: 'PerformanceHurdles.PageTitle',\r\n to: ROUTES.performanceHurdles,\r\n },\r\n [ROUTES.customVestingSchedules]: {\r\n ...manageAccountingInputsText,\r\n label: 'CustomVestingSchedules.PageTitle',\r\n to: ROUTES.customVestingSchedules,\r\n },\r\n [ROUTES.grantValuation]: {\r\n ...manageAccountingInputsText,\r\n label: 'GrantValuation.PageTitle',\r\n to: ROUTES.grantValuation,\r\n },\r\n [ROUTES.employeeStatus]: {\r\n ...manageAccountingInputsText,\r\n label: 'EmployeeStatus.PageTitle',\r\n to: ROUTES.employeeStatus,\r\n },\r\n [ROUTES.sbpExpenses]: {\r\n ...generateAndViewExpensesText,\r\n label: 'GenerateSbpExpenses.PageTitle',\r\n to: ROUTES.sbpExpenses,\r\n },\r\n [ROUTES.sbpExpenseReports]: {\r\n ...generateAndViewExpensesText,\r\n label: 'SbpExpensesReports.PageTitle',\r\n to: ROUTES.sbpExpenseReports,\r\n },\r\n [ROUTES.sbpExpensesJournal]: {\r\n ...generateAndViewExpensesText,\r\n label: 'GenerateJournalEntries.PageTitle',\r\n labelForBradCrumbs: 'GenerateJournalEntries.PageBreadcrumb',\r\n to: ROUTES.sbpExpensesJournal,\r\n },\r\n [ROUTES.sbpExpensesProvisional]: {\r\n ...additionalFeaturesText,\r\n label: 'SbpExpensesReports.ProvisionalExpensePanel.Title',\r\n to: ROUTES.sbpExpensesProvisional,\r\n },\r\n [ROUTES.sbpExpensesTrueUp]: {\r\n ...additionalFeaturesText,\r\n label: 'SbpExpensesReports.ExpenseTrueUpPanel.Title',\r\n to: ROUTES.sbpExpensesTrueUp,\r\n },\r\n [ROUTES.files]: {\r\n label: 'Files.PageTitle',\r\n to: ROUTES.files,\r\n },\r\n [ROUTES.logs]: {\r\n label: 'ActivityLogs.PageTitle',\r\n to: ROUTES.logs,\r\n },\r\n [ROUTES.manageEmployeeContracts]: {\r\n ...manageAccountingInputsText,\r\n label: 'ManageEmployeeContracts.PageTitle',\r\n to: ROUTES.manageEmployeeContracts,\r\n parents: [ROUTES.shareRegister],\r\n },\r\n [ROUTES.employeeContractDetails]: {\r\n label: 'EmployeeContractDetails.PageTitle',\r\n to: ROUTES.employeeContractDetails,\r\n parents: [ROUTES.shareRegister, ROUTES.manageEmployeeContracts],\r\n },\r\n};\r\n","import { OIDCROUTES, OIDCRoutesList } from '../../OIDCAuth/Routing/routes';\r\n\r\nexport enum ROUTES {\r\n landing = '/',\r\n home = '/home',\r\n shareRegister = '/share-register',\r\n performanceHurdles = '/performance-hurdles',\r\n manageEmployeeContracts = '/extract-share-register-information',\r\n employeeContractDetails = '/employee-contract-extracted-details',\r\n customVestingSchedules = '/custom-vesting-schedules',\r\n grantValuation = '/grant-valuation',\r\n employeeStatus = '/employee-status',\r\n sbpExpenses = '/sbp-expenses',\r\n sbpExpenseReports = '/sbp-expenses-reports',\r\n sbpExpensesJournal = '/sbp-journal',\r\n sbpExpensesProvisional = '/sbp-expenses-reports#provisional',\r\n sbpExpensesTrueUp = '/sbp-expenses-reports#trueUp',\r\n files = '/files',\r\n logs = '/logs',\r\n unauthorized = '/unauthorized',\r\n\r\n users = '/users',\r\n\r\n termsOfUse = '/termsOfUse',\r\n}\r\n\r\nexport const publicRoutes: Array = [...OIDCRoutesList, ROUTES.landing, ROUTES.unauthorized];\r\n","const summaryTotalView = 'SbpExpensesReports.SummaryReportPanel.SummaryTotalTab.Table.Search.Placeholder';\r\nconst employeeView = 'SbpExpensesReports.SummaryReportPanel.EmployeeViewTab.Table.Search.Placeholder';\r\nconst geographicalView = 'SbpExpensesReports.SummaryReportPanel.GeographicalViewTab.Table.Search.Placeholder';\r\nconst departmentView = 'SbpExpensesReports.SummaryReportPanel.DepartmentViewTab.Table.Search.Placeholder';\r\nconst planView = 'SbpExpensesReports.SummaryReportPanel.PlanViewTab.Table.Search.Placeholder';\r\nconst trueUpExpenseNew = 'SbpExpensesReports.ExpenseTrueUpPanel.NewReportExpenseTable.Search.Placeholder';\r\nconst trueUpExpensePrevious = 'SbpExpensesReports.ExpenseTrueUpPanel.NewReportExpenseTable.Search.Placeholder';\r\nconst provisionalExpense = 'SbpExpensesReports.ProvisionalExpensePanel.Table.Search.Placeholder';\r\nconst shareRegister = 'ShareRegister.GrantTable.Search.Placeholder';\r\nconst employeeStatus = 'EmployeeStatus.Table.Search.Placeholder';\r\nconst filesExported = 'Files.FileExportsTable.Search.Placeholder';\r\nconst performanceHurdles = 'PerformanceHurdles.Table.Search.Placeholder';\r\n\r\nexport const tableSearchPlaceholder = {\r\n summaryTotalView,\r\n employeeView,\r\n geographicalView,\r\n departmentView,\r\n planView,\r\n trueUpExpenseNew,\r\n trueUpExpensePrevious,\r\n provisionalExpense,\r\n shareRegister,\r\n employeeStatus,\r\n filesExported,\r\n performanceHurdles,\r\n};\r\n","import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';\r\nimport type { AppState, AppDispatch } from '../../store/interfaces';\r\n\r\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\r\nexport const useAppDispatch = (): AppDispatch => useDispatch();\r\n","import { useState, Dispatch, SetStateAction } from 'react';\r\n\r\nexport const useDataState = (\r\n initialData?: T,\r\n initialLoading = false\r\n): {\r\n data: T | undefined;\r\n setData: Dispatch>;\r\n loading: boolean;\r\n setLoading: Dispatch>;\r\n} => {\r\n const [data, setData] = useState(initialData);\r\n const [loading, setLoading] = useState(initialLoading);\r\n return {\r\n data,\r\n setData,\r\n loading,\r\n setLoading,\r\n };\r\n};\r\n","import { useState, useCallback } from 'react';\r\nimport useIsMounted from 'shared/hooks/useIsMounted';\r\nimport { FilesContainerName } from 'shared/models/enums.dl';\r\nimport type { PrivateFile, PublicFile } from 'shared/models/models.dl';\r\nimport FileService from 'shared/services/bl/files.service';\r\n\r\nexport interface UseDownloadPrivateFileReturnType {\r\n downloadPrivateFile: (file?: PrivateFile | PublicFile) => Promise;\r\n isDownLoading: boolean;\r\n}\r\n\r\nexport const useDownloadPrivateFile = (): UseDownloadPrivateFileReturnType => {\r\n const isMounted = useIsMounted();\r\n\r\n const [isDownLoading, setIsDownLoading] = useState(false);\r\n\r\n const downloadPrivateFile: UseDownloadPrivateFileReturnType['downloadPrivateFile'] = useCallback(\r\n async (file): Promise => {\r\n if (!file?.uid || file.containerName === FilesContainerName.PublicFiles) return;\r\n setIsDownLoading(true);\r\n await FileService.downloadPrivateFile(file);\r\n isMounted(() => setIsDownLoading(false));\r\n },\r\n [isMounted]\r\n );\r\n\r\n return { downloadPrivateFile, isDownLoading };\r\n};\r\n","import { useState, useCallback, useMemo, useEffect } from 'react';\r\nimport FileUploadingService from '../services/bl/fileUploading.service';\r\nimport type { IFileUploadingApiEntity } from '../models/models.bl';\r\nimport { FileUploadingState } from '../models/enums.dl';\r\nimport useIsMounted from './useIsMounted';\r\n\r\ninterface IState {\r\n processing: boolean;\r\n statusFetching: boolean;\r\n status?: FileUploadingState;\r\n}\r\n\r\ntype UseFileUploadingStateReturnType = IState & {\r\n fetchStatus: () => Promise;\r\n};\r\n\r\nexport const useFileUploadingState = (type?: IFileUploadingApiEntity): UseFileUploadingStateReturnType => {\r\n const isMounted = useIsMounted();\r\n const [data, setData] = useState({\r\n processing: false,\r\n statusFetching: !!type,\r\n });\r\n\r\n const resolveStatus = useCallback(\r\n (status?: FileUploadingState) => {\r\n isMounted(() => {\r\n setData((prev) => {\r\n const processing = FileUploadingService.checkIsUploadingStatus(status);\r\n return prev.status !== status || prev.processing !== processing || prev.statusFetching\r\n ? {\r\n status,\r\n processing,\r\n statusFetching: false,\r\n }\r\n : prev;\r\n });\r\n });\r\n },\r\n [isMounted]\r\n );\r\n\r\n const fetchStatus = useCallback(async () => {\r\n try {\r\n if (!type) throw new Error();\r\n setData((prev) => (prev.statusFetching ? prev : { ...prev, statusFetching: true }));\r\n const status = await FileUploadingService.getFileUploadingState(type);\r\n resolveStatus(status);\r\n } catch {\r\n resolveStatus();\r\n }\r\n }, [type, resolveStatus]);\r\n\r\n useEffect(() => {\r\n fetchStatus();\r\n }, [fetchStatus]);\r\n\r\n const result = useMemo(() => ({ ...data, fetchStatus }), [data, fetchStatus]);\r\n\r\n return result;\r\n};\r\n","import { useState, useCallback } from 'react';\r\nimport { TFunction, useTranslation } from 'react-i18next';\r\n\r\nexport type ForfeitureRate = string | number | undefined;\r\n\r\nconst errorText = (min: number, max: number, t: TFunction) => t('ShareRegister.ForfeitureRateError', { min, max });\r\n\r\nfunction useForfeitureRate(\r\n initialRate?: ForfeitureRate,\r\n min = 0,\r\n max = 100\r\n): {\r\n forfeitureRate: ForfeitureRate;\r\n forfeitureRateError: string;\r\n setForfeitureRate: (v: any) => void;\r\n onBlurForfeitureRate: () => void;\r\n} {\r\n const { t } = useTranslation();\r\n const [forfeitureRate, setForfeitureRate] = useState(initialRate);\r\n const [forfeitureRateError, setForfeitureRateError] = useState('');\r\n\r\n const setRateError = useCallback((rateValue: ForfeitureRate) => {\r\n setForfeitureRateError(() => {\r\n if (!rateValue) return '';\r\n if (Number.isNaN(+rateValue)) return errorText(min, max, t);\r\n const numberValue = Number.parseFloat(rateValue as string);\r\n return numberValue > max || numberValue < min ? errorText(min, max, t) : '';\r\n });\r\n }, []);\r\n\r\n const handleChangeForfeitureRate = useCallback(\r\n (value: string | number) => {\r\n if (value && typeof value === 'string') {\r\n value = value.trim();\r\n const prefix = value.startsWith('-') ? '-' : '';\r\n value = value.replace(/[^.\\d]/g, '').replace(/\\.+/g, '.');\r\n if ((!!value && Number.isNaN(+value)) || /\\.\\d{3}$/.test(value)) value = value.replace(/.$/, '');\r\n value = prefix + value;\r\n }\r\n setForfeitureRate(value);\r\n setRateError(value);\r\n },\r\n [setRateError]\r\n );\r\n\r\n const onBlurForfeitureRate = useCallback(() => {\r\n const rate =\r\n !forfeitureRate || !`${forfeitureRate}`.replace(/[^.\\d]/g, '')\r\n ? ''\r\n : `${Number.parseFloat(forfeitureRate as string)}`;\r\n\r\n setRateError(rate);\r\n setForfeitureRate(rate);\r\n }, [forfeitureRate, setRateError, setForfeitureRate]);\r\n\r\n return {\r\n forfeitureRate,\r\n forfeitureRateError,\r\n setForfeitureRate: handleChangeForfeitureRate,\r\n onBlurForfeitureRate,\r\n };\r\n}\r\n\r\nexport default useForfeitureRate;\r\n","import { useEffect, useCallback, useRef } from 'react';\r\n\r\nexport default function useIsMounted(): (callback?: () => void) => boolean {\r\n const mountedRef = useRef(false);\r\n useEffect(() => {\r\n mountedRef.current = true;\r\n return () => {\r\n mountedRef.current = false;\r\n };\r\n }, []);\r\n return useCallback((callback): boolean => {\r\n if (mountedRef.current && !!callback) {\r\n callback();\r\n }\r\n return mountedRef.current;\r\n }, []);\r\n}\r\n","import { useCallback } from 'react';\r\nimport { useMsal } from '@azure/msal-react';\r\nimport UserDataService from 'shared/services/dl/user.data.service';\r\n// import AuthenticationService from '../services/bl/authentication.service';\r\n\r\nexport const useLogoutFromApp = (/* deleteUser = true */): (() => Promise) => {\r\n const { instance } = useMsal();\r\n const getRedirectUri = instance.getConfiguration().auth.postLogoutRedirectUri;\r\n const logout = (): void => {\r\n localStorage.clear();\r\n instance.logoutRedirect({\r\n postLogoutRedirectUri: getRedirectUri,\r\n });\r\n };\r\n\r\n return useCallback(\r\n () =>\r\n UserDataService.clearUserCash().then(() => {\r\n // AuthenticationService.logOut(deleteUser);\r\n logout();\r\n }),\r\n [logout]\r\n );\r\n};\r\n","import { Form } from '@progress/kendo-react-form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useState, useRef, useEffect, useCallback, RefObject } from 'react';\r\n\r\nimport { parseErrorsMessages, trimValue } from 'components/Modals/helpers';\r\n\r\ninterface IProps {\r\n onEdit?: (data: T) => void;\r\n onCancel: () => void;\r\n onConfirm: (data: T) => Promise;\r\n visible: boolean;\r\n data: F;\r\n createObjectToSubmit?: (data: F) => T;\r\n isLoading?: boolean;\r\n allowConfirmIfNoChanges?: boolean;\r\n preventTrimValues?: Record['data'], boolean | undefined>;\r\n}\r\n\r\ninterface IHookReturnType {\r\n refForm: RefObject
;\r\n formObject: F;\r\n validationMessage: string;\r\n clearDateFlag: boolean;\r\n onEdit: () => void;\r\n onCancel: () => void;\r\n clearDate: (name: string) => void;\r\n onConfirm: () => void;\r\n handleConfirmError: (err: any) => void;\r\n onSubmit: (v: any) => void;\r\n onChange: (v: any) => void;\r\n setValueByNameToFormObject: (name: string, value: string) => void;\r\n}\r\n\r\ntype ConfirmType = 'edit' | 'confirm';\r\n\r\nexport const useModalActiveState = ({\r\n onEdit,\r\n onCancel,\r\n onConfirm,\r\n visible,\r\n data,\r\n createObjectToSubmit,\r\n isLoading,\r\n allowConfirmIfNoChanges,\r\n preventTrimValues,\r\n}: IProps): IHookReturnType => {\r\n const confirmType = useRef('confirm');\r\n const { t } = useTranslation();\r\n const refForm = useRef(null);\r\n const [formObject, setFormObject] = useState({} as F);\r\n const [clearDateFlag, setClearDateFlag] = useState(false);\r\n const [validationMessage, setValidationMessage] = useState('');\r\n\r\n useEffect(() => {\r\n setFormObject(data);\r\n }, [visible]);\r\n\r\n const handleChange = useCallback(({ value, target: { name } }: any) => {\r\n setFormObject((prev) => ({\r\n ...prev,\r\n [name]: !preventTrimValues?.[name as keyof (T | F)] ? trimValue(value) : value,\r\n }));\r\n }, []);\r\n const handleClearDate = useCallback((name: string) => {\r\n const arr = [\r\n { name: 'terminationDate', value: null },\r\n { name: 'terminationType', value: '' },\r\n ];\r\n if (name === 'terminationDate') {\r\n setClearDateFlag(true);\r\n arr.forEach((element) => {\r\n refForm?.current?.onChange(element.name, { value: element.value });\r\n setFormObject((prev) => ({\r\n ...prev,\r\n [element.name]: !preventTrimValues?.[element.name as keyof (T | F)]\r\n ? trimValue(element.value)\r\n : element.value,\r\n }));\r\n });\r\n } else {\r\n setClearDateFlag(false);\r\n refForm?.current?.onChange(name, { value: null });\r\n const value = null;\r\n setFormObject((prev) => ({\r\n ...prev,\r\n [name]: !preventTrimValues?.[name as keyof (T | F)] ? trimValue(value) : value,\r\n }));\r\n }\r\n }, []);\r\n const handleCancel = useCallback(() => {\r\n onCancel();\r\n setFormObject({} as F);\r\n setValidationMessage('');\r\n }, []);\r\n\r\n const handleConfirmError = useCallback((err: any) => {\r\n if (!err?.response?.data) return;\r\n let message = '';\r\n const { data: errorData } = err.response;\r\n\r\n if (errorData && typeof errorData === 'string') {\r\n message = t(errorData);\r\n } else if (errorData.errors) {\r\n message = `${parseErrorsMessages(errorData.errors, t)}`;\r\n }\r\n\r\n setValidationMessage(message);\r\n }, []);\r\n\r\n const sendRequest = useCallback(\r\n (resultData: T | F): void => {\r\n setValidationMessage('');\r\n const result = createObjectToSubmit ? createObjectToSubmit({ ...resultData } as F) : (resultData as T);\r\n if (confirmType.current === 'confirm') {\r\n onConfirm(result).catch(handleConfirmError);\r\n } else {\r\n onEdit?.(result);\r\n }\r\n },\r\n [formObject, onConfirm, createObjectToSubmit, onEdit]\r\n );\r\n\r\n const onFormSubmit = useCallback(\r\n (formData: T | F) => {\r\n if (!formData) return;\r\n sendRequest(formObject);\r\n },\r\n [formObject, sendRequest]\r\n );\r\n\r\n const runFormSubmitAdapter = useCallback(() => {\r\n if (isLoading) return;\r\n if (\r\n refForm?.current &&\r\n !refForm.current.isFormModified(refForm.current.modified, refForm.current.fields) &&\r\n refForm.current.isFormValid(refForm.current.errors) &&\r\n allowConfirmIfNoChanges\r\n ) {\r\n sendRequest(data);\r\n } else {\r\n // @ts-ignore\r\n refForm?.current?.onSubmit();\r\n }\r\n }, [data, sendRequest]);\r\n\r\n const handleConfirm = useCallback(() => {\r\n confirmType.current = 'confirm';\r\n runFormSubmitAdapter();\r\n }, [runFormSubmitAdapter]);\r\n\r\n const handleEdit = useCallback(() => {\r\n confirmType.current = 'edit';\r\n runFormSubmitAdapter();\r\n }, [runFormSubmitAdapter]);\r\n\r\n const setValueByNameToFormObject = useCallback((name = '', value = '') => {\r\n setFormObject((prev) => ({ ...prev, [name]: value }));\r\n }, []);\r\n\r\n return {\r\n refForm,\r\n formObject,\r\n clearDateFlag,\r\n validationMessage,\r\n onEdit: handleEdit,\r\n onCancel: handleCancel,\r\n clearDate: handleClearDate,\r\n onConfirm: handleConfirm,\r\n handleConfirmError,\r\n onSubmit: onFormSubmit,\r\n onChange: handleChange,\r\n setValueByNameToFormObject,\r\n };\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { useCallback, useState, useEffect, useRef } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport type { ISelected } from 'components/MipTable/MipTable';\r\nimport type { IColumnConfig, IRowData } from 'components/Table/interfaces';\r\nimport { BeforeUploadWarningModalData } from '../constants/fileUploading';\r\nimport * as Models from '../shared.models';\r\nimport Utils from '../shared.utils';\r\n\r\ninterface IItemInfoModalData {\r\n data: (T & { columnName?: string }) | null;\r\n visible: boolean;\r\n}\r\n\r\nconst initialItemInfoModal = {\r\n data: null,\r\n visible: false,\r\n};\r\n\r\nexport const initialFileUploadWarnModal: Models.BM.IBeforeUploadWarningModalData = {\r\n visible: false,\r\n title: '',\r\n text: '',\r\n};\r\n\r\ntype ForfeitureRate = string | number | undefined;\r\n\r\nexport interface IUseTableActiveStateOptions {\r\n uploadWarningModalType?: Models.BM.IFileUploadingView;\r\n fetchOnMount?: boolean;\r\n fetchOnFileUpload?: boolean;\r\n refreshTableDataToggler?: any;\r\n}\r\nexport interface IUsePageWithTableInitialOptions {\r\n fetchData?: (searchParams?: any, data?: any) => Promise>;\r\n uploadFile?: (file: File, someValue?: any) => Promise;\r\n deleteData?: (selected: any) => Promise;\r\n exportData?: (searchParams?: any, data?: any) => Promise;\r\n updateRowData?: (newRowData: M) => Promise;\r\n updateEstimate?: (newRowData: M) => Promise;\r\n getFileUploadingState?: () => Promise;\r\n getDataExportingStatus?: () => Promise;\r\n options?: IUseTableActiveStateOptions;\r\n}\r\n\r\nconst isDevMode = process.env.NODE_ENV === 'development';\r\n\r\nexport const useTableActiveState = (\r\n {\r\n fetchData,\r\n uploadFile: upload,\r\n deleteData: deleteRows,\r\n exportData: exportRows,\r\n getFileUploadingState,\r\n getDataExportingStatus,\r\n updateRowData,\r\n options,\r\n } = {} as IUsePageWithTableInitialOptions\r\n) => {\r\n const { t } = useTranslation();\r\n const commonFinallyAction = useCallback(() => {\r\n getFileUploadingState?.();\r\n getDataExportingStatus?.();\r\n }, [getFileUploadingState, getDataExportingStatus]);\r\n const { fetchOnMount = true, fetchOnFileUpload = true } = options || ({} as IUseTableActiveStateOptions);\r\n const forfeitureRateRef = useRef();\r\n const resetTableAfterFileUploadedRef = useRef(false);\r\n const [data, setData] = useState([]);\r\n const [headers, setHeaders] = useState[] | null>(null);\r\n const [dataLoading, setDataLoading] = useState(!!fetchData && fetchOnMount);\r\n const [dataDeleting, setDataDeleting] = useState(false);\r\n\r\n const [dataExporting, setDataExporting] = useState(false);\r\n const [fileUploading, setFileUploading] = useState(false);\r\n const [forfeitRate, setForfeitRate]: any = useState('');\r\n const [tempFile, setTempFile] = useState(null);\r\n const [rowInfoModalData, setRowInfoModalData] = useState>(initialItemInfoModal);\r\n const [rowUpdateEstimateModalData, setrowUpdateEstimateModalData] =\r\n useState>(initialItemInfoModal);\r\n const [rowInfoModalDataUpdating, setRowInfoModalDataUpdating] = useState(false);\r\n const [fileUploadResultModal, setFileUploadResultModal] = useState<{\r\n rowsAdded: number;\r\n rowsAddedOrUpdated: number;\r\n rowsDeleted: number;\r\n rowsUpdated: number;\r\n relatedRowsUpdated?: {\r\n key: string;\r\n rowsUpdated: number;\r\n };\r\n } | null>(null);\r\n const [fileUploadErrors, setFileUploadErrors] = useState([]);\r\n const [fileUploadWarnModalData, setFileUploadWarnModalData] =\r\n useState(initialFileUploadWarnModal);\r\n const tableDataRef = useRef();\r\n\r\n useEffect(() => {\r\n tableDataRef.current = data;\r\n }, [data]);\r\n\r\n const setDataAndHeaders = useCallback((allData: Models.BM.ResponseTableDataType): void => {\r\n const { getRows, getHeaders } = Utils.getCorrectTableDataFromResponse(allData);\r\n setData(getRows);\r\n setHeaders(getHeaders);\r\n }, []);\r\n\r\n const getDataFinalization = useCallback(() => {\r\n setDataLoading(false);\r\n setFileUploading(false);\r\n setTempFile(null);\r\n }, []);\r\n\r\n const getData = useCallback(\r\n (searchParams?: any): Promise =>\r\n fetchData\r\n ? fetchData(searchParams)\r\n .then((responseData) => {\r\n setDataAndHeaders(responseData);\r\n getDataFinalization();\r\n })\r\n .catch(getDataFinalization)\r\n : Promise.resolve().then(getDataFinalization),\r\n [getDataFinalization]\r\n );\r\n\r\n const closeFileUploadWarnModal = useCallback(() => {\r\n setFileUploadWarnModalData(initialFileUploadWarnModal);\r\n }, []);\r\n\r\n const uploadFile = useCallback(\r\n (file: File, someValue?: any): Promise => {\r\n setFileUploadErrors([]);\r\n if (!upload || !file) {\r\n if (isDevMode) {\r\n if (!upload) console.warn('set uploadFile method to useTableActiveState');\r\n if (!file) console.warn('no file to upload');\r\n }\r\n return Promise.resolve();\r\n }\r\n setFileUploading(true);\r\n return upload(file, someValue)\r\n .then((resultData) => {\r\n if (resultData?.error) throw new Error(resultData?.error);\r\n commonFinallyAction();\r\n let result = resultData?.dbResult ? resultData?.dbResult : resultData;\r\n\r\n if (typeof result === 'number') {\r\n result = {\r\n rowsAdded: 0,\r\n rowsAddedOrUpdated: result,\r\n rowsDeleted: 0,\r\n rowsUpdated: 0,\r\n };\r\n } else if (result) {\r\n const relatedRowsUpdatedKey =\r\n !!resultData && resultData instanceof Object\r\n ? Object.keys(resultData).find((key) => key !== 'dbResult' && key.startsWith('dbResult'))\r\n : undefined;\r\n if (relatedRowsUpdatedKey) {\r\n result.relatedRowsUpdated = {\r\n key: relatedRowsUpdatedKey,\r\n rowsUpdated: resultData[relatedRowsUpdatedKey]?.rowsUpdated || 0,\r\n };\r\n }\r\n }\r\n // setFileUploadResultModal(result);\r\n setFileUploading(false);\r\n setTempFile(null);\r\n resetTableAfterFileUploadedRef.current = true;\r\n if (fetchOnFileUpload) {\r\n getData();\r\n }\r\n return Promise.resolve();\r\n })\r\n .catch((err) => {\r\n const errors = Utils.parseErrorResponse(err, t);\r\n setFileUploadErrors(errors);\r\n setFileUploading(false);\r\n commonFinallyAction();\r\n return Promise.reject(errors);\r\n });\r\n },\r\n [getData, upload, fetchOnFileUpload, commonFinallyAction]\r\n );\r\n\r\n const exportData = useCallback(\r\n (resetSelected?: (() => void) | null, ...searchParams: any[]) =>\r\n () => {\r\n if (!exportRows) {\r\n if (isDevMode) {\r\n console.warn('set exportData method to useTableActiveState');\r\n }\r\n return Promise.resolve('');\r\n }\r\n setDataExporting(true);\r\n return exportRows(...searchParams)\r\n .then(() => {\r\n resetSelected?.();\r\n })\r\n .catch(() => {})\r\n .finally(() => {\r\n setDataExporting(false);\r\n commonFinallyAction();\r\n });\r\n },\r\n [exportRows, commonFinallyAction]\r\n );\r\n\r\n const deleteData = useCallback(\r\n (selected?: any | ISelected, resetData?: () => void) => () => {\r\n const haveSomethingToDelete = ((): boolean => {\r\n if (!selected) return false;\r\n if (Array.isArray(selected) && !selected.length) return false;\r\n if (!Array.isArray(selected) && !selected?.keys?.length && !selected?.deleteAll) return false;\r\n return true;\r\n })();\r\n if (!deleteRows || !haveSomethingToDelete) {\r\n if (isDevMode) {\r\n if (!deleteRows) console.warn('set deleteData method to useTableActiveState');\r\n if (!haveSomethingToDelete) console.warn('no data to delete');\r\n }\r\n return Promise.resolve('');\r\n }\r\n setDataLoading(true);\r\n setDataDeleting(true);\r\n\r\n return deleteRows(selected || [])\r\n .then((/* resultData */) => {\r\n // TODO: uncomment next line if we need to show result of deletion in modal\r\n // setFileUploadResultModal(resultData?.dbResult ? resultData?.dbResult : resultData);\r\n setDataDeleting(false);\r\n resetData?.();\r\n commonFinallyAction();\r\n return getData();\r\n })\r\n .catch(() => {\r\n setDataDeleting(false);\r\n setDataLoading(false);\r\n commonFinallyAction();\r\n });\r\n },\r\n [getData, deleteRows, commonFinallyAction]\r\n );\r\n\r\n const confirmRowInfoModal = useCallback(\r\n (newRowData: M) => {\r\n if (!updateRowData || !newRowData) {\r\n if (isDevMode) {\r\n if (!updateRowData) console.warn('set updateRowData method to useTableActiveState');\r\n if (!newRowData) console.warn('no data to add/edit');\r\n }\r\n return Promise.resolve();\r\n }\r\n setRowInfoModalDataUpdating(true);\r\n return updateRowData(newRowData)\r\n .then(() => {\r\n setRowInfoModalData(initialItemInfoModal);\r\n return getData();\r\n })\r\n .finally(() => {\r\n setRowInfoModalDataUpdating(false);\r\n commonFinallyAction();\r\n });\r\n },\r\n [updateRowData, commonFinallyAction]\r\n );\r\n const openRowInfoModal = useCallback((row?: T, col?: IColumnConfig) => {\r\n setRowInfoModalData({\r\n visible: true,\r\n data: !row\r\n ? null\r\n : {\r\n ...row,\r\n columnName: col?.name || '',\r\n },\r\n });\r\n }, []);\r\n\r\n const openUpdateEstimateModal = useCallback((row?: T, col?: IColumnConfig) => {\r\n setrowUpdateEstimateModalData({\r\n visible: true,\r\n data: !row\r\n ? null\r\n : {\r\n ...row,\r\n columnName: col?.name || '',\r\n },\r\n });\r\n }, []);\r\n const closeUpdateEstimateModal: () => void = useCallback(() => {\r\n setrowUpdateEstimateModalData(initialItemInfoModal);\r\n }, []);\r\n const closeRowInfoModal: () => void = useCallback(() => {\r\n setRowInfoModalData(initialItemInfoModal);\r\n }, []);\r\n\r\n const chooseFile = useCallback(\r\n async (file: File, forfeitureRate?: number | string) => {\r\n if (!!forfeitureRate || forfeitureRate === 0 || forfeitureRate === undefined) {\r\n if (!!tableDataRef?.current?.length && !!options?.uploadWarningModalType) {\r\n setTempFile(file);\r\n forfeitureRateRef.current = forfeitureRate;\r\n setFileUploadWarnModalData(BeforeUploadWarningModalData[options.uploadWarningModalType]);\r\n throw new Error('');\r\n } else {\r\n await uploadFile(file, forfeitureRate).catch(() => {});\r\n }\r\n } else {\r\n setTempFile(file);\r\n forfeitureRateRef.current = forfeitureRate;\r\n setFileUploadWarnModalData({\r\n visible: true,\r\n title: 'ShareRegister.ForfeitureRateModal.Title',\r\n text: 'ShareRegister.ForfeitureRateModal.Description',\r\n });\r\n throw new Error('');\r\n }\r\n },\r\n [uploadFile, !!data?.length, options?.uploadWarningModalType]\r\n );\r\n\r\n const confirmFileUpload = useCallback(() => {\r\n if (\r\n !!data?.length &&\r\n !!options?.uploadWarningModalType &&\r\n fileUploadWarnModalData.title !== BeforeUploadWarningModalData[options.uploadWarningModalType].title\r\n ) {\r\n setFileUploadWarnModalData(BeforeUploadWarningModalData[options.uploadWarningModalType]);\r\n } else {\r\n if (tempFile) uploadFile(tempFile, forfeitureRateRef.current).catch(() => {});\r\n forfeitureRateRef.current = undefined;\r\n closeFileUploadWarnModal();\r\n }\r\n }, [data, fileUploadWarnModalData, closeFileUploadWarnModal, tempFile]);\r\n\r\n useEffect(() => {\r\n if (fetchData && fetchOnMount) {\r\n getData();\r\n }\r\n }, [getData, fetchData, fetchOnMount, options?.refreshTableDataToggler]);\r\n\r\n useEffect(() => {\r\n if (options?.refreshTableDataToggler) {\r\n setFileUploadErrors((prev) => (prev.length ? [] : prev));\r\n resetTableAfterFileUploadedRef.current = true;\r\n }\r\n }, [options?.refreshTableDataToggler]);\r\n\r\n return {\r\n data,\r\n headers,\r\n setData,\r\n setHeaders,\r\n getData,\r\n dataLoading,\r\n setDataLoading,\r\n fileUploading,\r\n setFileUploading,\r\n tempFile,\r\n setTempFile,\r\n uploadFile,\r\n deleteData,\r\n dataDeleting,\r\n setDataDeleting,\r\n exportData,\r\n dataExporting,\r\n setDataExporting,\r\n openRowInfoModal,\r\n openUpdateEstimateModal,\r\n closeRowInfoModal,\r\n closeUpdateEstimateModal,\r\n rowInfoModalData,\r\n rowUpdateEstimateModalData,\r\n fileUploadResultModal,\r\n closeFileUploadResultModal: useCallback(() => {\r\n setFileUploadResultModal(null);\r\n }, []),\r\n fileUploadErrors,\r\n fileUploadWarnModalData,\r\n closeFileUploadWarnModal,\r\n chooseFile,\r\n confirmFileUpload,\r\n confirmRowInfoModal,\r\n rowInfoModalDataUpdating,\r\n resetTableAfterFileUploadedRef,\r\n setDataAndHeaders,\r\n setFileUploadErrors,\r\n forfeitRate,\r\n setForfeitRate,\r\n };\r\n};\r\n","import { useState, useCallback, useMemo } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport useIsMounted from './useIsMounted';\r\nimport type {\r\n IUploadFileResponse,\r\n IUploadFileDbResultResponse,\r\n IUploadFileResponseWithError,\r\n} from '../models/models.bl';\r\nimport { parseErrorResponse } from '../utils/parseErrorResponse';\r\n\r\nexport interface IFileUploadModalData {\r\n visible: boolean;\r\n title: string;\r\n text: string;\r\n}\r\n\r\nexport const initialFileUploadWarnModal: IFileUploadModalData = {\r\n visible: false,\r\n title: '',\r\n text: '',\r\n};\r\n\r\nexport interface IOptions {\r\n showResultModal?: boolean;\r\n}\r\n\r\ninterface IFileUploadResultModalData extends IUploadFileDbResultResponse {\r\n relatedRowsUpdated?: {\r\n key: string;\r\n rowsUpdated: number;\r\n };\r\n}\r\n\r\nexport type OnFileUploadType = (file: File, ...rest: any) => Promise;\r\nexport type HandleFileUploadType = (...props: Parameters) => Promise;\r\n\r\ninterface IState {\r\n loading: boolean;\r\n result: IFileUploadResultModalData | null;\r\n errors: string[];\r\n}\r\n\r\nexport interface IStateWithReset extends IState {\r\n reset: () => void;\r\n}\r\ntype UseUploaderReturnType = [upload: HandleFileUploadType, state: IStateWithReset];\r\ntype UseUploaderType = (onFileUpload: OnFileUploadType, options?: IOptions) => UseUploaderReturnType;\r\n\r\nconst parseUploadResponse = (response?: IUploadFileResponse): IFileUploadResultModalData | null => {\r\n if (typeof response === 'number') {\r\n return {\r\n rowsAdded: 0,\r\n rowsAddedOrUpdated: response,\r\n rowsDeleted: 0,\r\n rowsUpdated: 0,\r\n };\r\n }\r\n if (!response || response?.constructor?.name !== 'Object') return null;\r\n if (!(response as IUploadFileResponseWithError)?.dbResult) {\r\n return response as IUploadFileDbResultResponse;\r\n }\r\n\r\n const result = response as IUploadFileResponseWithError;\r\n const relatedRowsUpdatedKey = Object.keys(result).find(\r\n (key) => key !== 'dbResult' && key.startsWith('dbResult')\r\n ) as keyof IUploadFileResponseWithError;\r\n if (!relatedRowsUpdatedKey) return result.dbResult;\r\n return {\r\n ...result.dbResult,\r\n relatedRowsUpdated: {\r\n key: relatedRowsUpdatedKey,\r\n rowsUpdated:\r\n (result[relatedRowsUpdatedKey] as IUploadFileResponseWithError['dbResultRelatedKey'])?.rowsUpdated || 0,\r\n },\r\n };\r\n};\r\n\r\nconst initialState: IState = {\r\n loading: false,\r\n result: null,\r\n errors: [],\r\n};\r\n\r\nexport const useUploader: UseUploaderType = (onFileUpload, options) => {\r\n const [localState, setState] = useState(initialState);\r\n const { t } = useTranslation();\r\n\r\n const isMounted = useIsMounted();\r\n\r\n const upload: HandleFileUploadType = useCallback(async (file, ...rest) => {\r\n try {\r\n if (!file) {\r\n throw new Error('Please choose file for uploading');\r\n }\r\n setState((prev) => ({\r\n ...prev,\r\n loading: true,\r\n errors: initialState.errors,\r\n }));\r\n const responseData = await onFileUpload(file, ...rest);\r\n const errorText = (responseData as IUploadFileResponseWithError)?.error;\r\n if (errorText) throw new Error(errorText);\r\n isMounted(() => {\r\n setState((prev) => ({\r\n ...prev,\r\n loading: false,\r\n result: options?.showResultModal ? parseUploadResponse(responseData) : initialState.result,\r\n }));\r\n });\r\n } catch (error) {\r\n const errorList = parseErrorResponse(error, t);\r\n isMounted(() => {\r\n setState((prev) => ({\r\n ...prev,\r\n loading: false,\r\n errors: errorList.length ? errorList : initialState.errors,\r\n }));\r\n });\r\n await Promise.reject(errorList);\r\n }\r\n }, []);\r\n\r\n const reset = useCallback(() => {\r\n setState(initialState);\r\n }, []);\r\n\r\n const state: IStateWithReset = useMemo(\r\n () => ({\r\n ...localState,\r\n reset,\r\n }),\r\n [localState]\r\n );\r\n\r\n return [upload, state];\r\n};\r\n","import { useRef, useCallback, useState, useMemo } from 'react';\r\nimport type { IBeforeUploadWarningModalData, IFileUploadingView } from '../models/models.bl';\r\nimport { BeforeUploadWarningModalData } from '../constants/fileUploading';\r\nimport {\r\n HandleFileUploadType,\r\n IOptions,\r\n IStateWithReset as IUploaderState,\r\n OnFileUploadType as OnUseUploaderFileUploadType,\r\n useUploader,\r\n} from './useUploader';\r\n\r\ninterface IStateToReturn extends Omit {\r\n confirm: () => ReturnType;\r\n cancel: () => void;\r\n fileUploadWarnModalData: IBeforeUploadWarningModalData;\r\n}\r\n\r\ntype OnFileUploadType = (\r\n ...props: Parameters\r\n) => Promise<{ isConfirmationNeeded: boolean } | void>;\r\ntype UseUploaderWithDataConfirmationReturnType = [upload: OnFileUploadType, state: IStateToReturn];\r\n\r\ntype UseUploaderWithDataConfirmationType = (\r\n onFileUpload: OnUseUploaderFileUploadType,\r\n options: IOptions & { uploadWarningModalConfig?: { type: IFileUploadingView; isDataExists: boolean } }\r\n) => UseUploaderWithDataConfirmationReturnType;\r\n\r\nconst initialFileUploadWarnModal: IBeforeUploadWarningModalData = {\r\n visible: false,\r\n title: '',\r\n text: '',\r\n};\r\n\r\nexport const useUploaderWithDataConfirmation: UseUploaderWithDataConfirmationType = (\r\n onFileUpload,\r\n { uploadWarningModalConfig, ...options }\r\n) => {\r\n const uploadDataHolderForConfirmation = useRef | null>(null);\r\n const [fileUploadWarnModalData, setFileUploadWarnModalData] =\r\n useState(initialFileUploadWarnModal);\r\n\r\n const [upload, { reset: resetUploaderState, ...state }] = useUploader(onFileUpload, options);\r\n\r\n const cancel = useCallback(() => {\r\n uploadDataHolderForConfirmation.current = null;\r\n setFileUploadWarnModalData(initialFileUploadWarnModal);\r\n resetUploaderState();\r\n }, [resetUploaderState]);\r\n\r\n const uploadFile: OnFileUploadType = useCallback(\r\n async (...props) => {\r\n if (uploadWarningModalConfig?.isDataExists) {\r\n uploadDataHolderForConfirmation.current = props;\r\n setFileUploadWarnModalData(BeforeUploadWarningModalData[uploadWarningModalConfig.type]);\r\n return { isConfirmationNeeded: true };\r\n }\r\n setFileUploadWarnModalData(initialFileUploadWarnModal);\r\n uploadDataHolderForConfirmation.current = null;\r\n // INFO: no needed handle error in here to prevent emitting methods outside of hook if there is error\r\n return upload(...props);\r\n },\r\n [upload, uploadWarningModalConfig?.isDataExists, uploadWarningModalConfig?.type]\r\n );\r\n\r\n const confirm = useCallback(async () => {\r\n if (!uploadDataHolderForConfirmation.current) return;\r\n setFileUploadWarnModalData(initialFileUploadWarnModal);\r\n // INFO: no needed handle error in here to prevent emitting methods outside of hook if there is error\r\n await upload(...uploadDataHolderForConfirmation.current);\r\n }, [upload]);\r\n\r\n const stateToReturn = useMemo(\r\n () => ({\r\n ...state,\r\n cancel,\r\n confirm,\r\n fileUploadWarnModalData,\r\n }),\r\n [state, cancel, confirm, fileUploadWarnModalData]\r\n );\r\n\r\n return [uploadFile, stateToReturn];\r\n};\r\n","export enum HttpStatus {\r\n BadRequest = 400,\r\n Unauthorized = 401,\r\n Forbidden = 403,\r\n NotFound = 404,\r\n Conflict = 409,\r\n PreconditionFailed = 412,\r\n ServerError = 500,\r\n ServiceUnavailable = 503,\r\n}\r\n\r\nexport enum ApiEntity {\r\n Log = 'log',\r\n User = 'user',\r\n ShareRegister = 'ShareRegister',\r\n CustomVestingSchedule = 'CustomVestingSchedule',\r\n GenericVestingSchedule = 'GenericVestingSchedule',\r\n GrantValuation = 'valuation',\r\n EmployeeStatus = 'employee/status',\r\n ActivityLogs = 'logs',\r\n ExpenseCalculations = 'expenseCalculations',\r\n Reports = 'reports',\r\n ProvisionExpense = 'provisionExpense',\r\n TrueUp = 'TrueUp',\r\n JournalEntries = 'journalEntries',\r\n Files = 'files',\r\n Notifications = 'notification',\r\n Localization = 'localization',\r\n GenerateSbpExpenses = 'generateSbpExpenses',\r\n PerformanceHurdles = 'PerformanceHurdle',\r\n ManageEmployeeContracts = 'employeeContracts',\r\n}\r\n\r\nexport enum ReportsApiEntity {\r\n MyIncentivePlanSummary = 'MyIncentivePlanSummary',\r\n SummaryTotal = 'summaryTotal',\r\n Geographical = 'geographical',\r\n Plan = 'plan',\r\n Employee = 'employee',\r\n Detailed = 'detailed',\r\n Department = 'department',\r\n ExpenseOutlook = 'expenseOutlook',\r\n}\r\n","export enum UserRole {\r\n Reviewer = 'Reviewer',\r\n Preparer = 'Preparer',\r\n}\r\n\r\nexport enum FilesContainerName {\r\n PublicFiles = 'helpdocs',\r\n Reports = 'reports',\r\n Templates = 'templates',\r\n}\r\n\r\nexport enum TemplateFileCode {\r\n ShareRegister = 'OptionsGrantedTemplate',\r\n CustomVesting = 'CustomVestingTemplate',\r\n Employee = 'EmployeeStatusTemplate',\r\n Provision = 'ProvisionTemplate',\r\n Valuation = 'ValuationReferenceTemplate',\r\n}\r\n\r\nexport enum PublicFileCode {\r\n Notices = 'Notices',\r\n PrivacyPolicy = 'PrivacyPolicy',\r\n TermsOfUse = 'TermsOfUse',\r\n Cookie = 'Cookie',\r\n}\r\n\r\nexport enum SumRowKey {\r\n 'SUM of Vested' = 'SUM of Vested',\r\n 'SUM of Reverse' = 'SUM of Reverse',\r\n 'SUM TOTAL' = 'SUM TOTAL',\r\n}\r\n\r\nexport enum UserSettingsDateFormat {\r\n MM_DD_YYYY = 'MM/dd/yyyy',\r\n YYYY_MM_DD = 'yyyy/MM/dd',\r\n DD_MM_YYYY = 'dd/MM/yyyy',\r\n DD_MMMM_YYYY = 'dd MMMM yyyy',\r\n}\r\n\r\nexport enum UserSettingsNumberFormat {\r\n '1,000,000.00' = ',.',\r\n '1.000.000,00' = '.,',\r\n '1 000 000,00' = ' ,',\r\n}\r\n\r\nexport enum FiltersTypes {\r\n Entities = 'entities',\r\n DepartmentAs = 'departmentAs',\r\n DepartmentBs = 'departmentBs',\r\n DepartmentCs = 'departmentCs',\r\n}\r\n\r\nexport enum ExpenseReportStatus {\r\n New = 'New',\r\n InProgress = 'InProgress',\r\n Failed = 'Failed',\r\n Success = 'Success',\r\n Canceled = 'Canceled',\r\n Final = 'Final',\r\n}\r\n\r\nexport enum FileUploadingState {\r\n New = 'New',\r\n InProgress = 'InProgress',\r\n Success = 'Success',\r\n Failed = 'Failed',\r\n}\r\n\r\nexport enum ChartStatus {\r\n Vested = 'Vested',\r\n Total = 'Total',\r\n Reverse = 'Reverse',\r\n}\r\n\r\nexport enum DataExportingView {\r\n shareRegister = 'shareRegister',\r\n customVesting = 'customVesting',\r\n grandValuation = 'grandValuation',\r\n employeeStatus = 'employeeStatus',\r\n sbpExpensesReportsMyIncentivePlanSummary = 'sbpExpensesReportsMyIncentivePlanSummary',\r\n sbpExpensesReportsSummaryTotal = 'sbpExpensesReportsSummaryTotal',\r\n sbpExpensesReportsEmployeeView = 'sbpExpensesReportsEmployeeView',\r\n sbpExpensesReportsGeographicalView = 'sbpExpensesReportsGeographicalView',\r\n sbpExpensesReportsDepartmentView = 'sbpExpensesReportsDepartmentView',\r\n sbpExpensesReportsPlanView = 'sbpExpensesReportsPlanView',\r\n sbpExpensesReportsDetailed = 'sbpExpensesReportsDetailed',\r\n sbpExpensesReportsProvisionExpense = 'sbpExpensesReportsProvisionExpense',\r\n sbpExpensesReportsTrueUpExpense = 'sbpExpensesReportsTrueUpExpense',\r\n journalEntries = 'journalEntries',\r\n activityLogs = 'activityLogs',\r\n sbpExpensesReportsExpenseOutlookView = 'sbpExpensesReportsExpenseOutlookView',\r\n}\r\n","import { ApiEntity, ReportsApiEntity } from '../../models/enums.bl';\r\nimport ConfigService from './config.service';\r\nimport { IFileUploadingApiEntity, IExportingDataApiEntity } from '../../models/models.bl';\r\n\r\nconst separator = '/';\r\n\r\nexport default class ApiUrlsService {\r\n static get GeoRelatedUrl(): string {\r\n return ConfigService.ApiUrls[ConfigService.GeoRelatedCode];\r\n }\r\n\r\n static logError(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Log, 'error'].join(separator);\r\n }\r\n\r\n static getUserGeoCode(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.User, 'geoCode'].join(separator);\r\n }\r\n\r\n static getUserProfile(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.User, 'profile'].join(separator);\r\n }\r\n\r\n static saveUserSettings(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.User, 'settings'].join(separator);\r\n }\r\n\r\n static clearUserCash(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.User, 'clearCache'].join(separator);\r\n }\r\n // Share Register -->\r\n\r\n static getShareRegisterTableList(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ShareRegister].join(separator);\r\n }\r\n\r\n static getShareRegisterData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ShareRegister].join(separator);\r\n }\r\n\r\n static updateShareRegisterItem(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ShareRegister, 'save'].join(separator);\r\n }\r\n\r\n static uploadShareRegisterTableFile(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ShareRegister, 'upload'].join(separator);\r\n }\r\n\r\n static deleteShareRegisterTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ShareRegister, 'delete'].join(separator);\r\n }\r\n\r\n static exportShareRegisterTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ShareRegister, 'export'].join(separator);\r\n }\r\n\r\n static getVestingSchedules(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ShareRegister, 'vestingSchedules'].join(separator);\r\n }\r\n\r\n static checkCustomVestingScheduleForNewGrantId(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ShareRegister, 'CheckCustomVestingSchedule'].join(separator);\r\n }\r\n\r\n // <-- Share Register\r\n\r\n // Custom Vesting Schedule -->\r\n\r\n static getCustomVestingScheduleTableList(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.CustomVestingSchedule, 'all'].join(separator);\r\n }\r\n\r\n static generateCustomVestingScheduleItem(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.CustomVestingSchedule, 'vestingUnits', 'generate'].join(separator);\r\n }\r\n\r\n static updateCustomVestingScheduleItem(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.CustomVestingSchedule].join(separator);\r\n }\r\n\r\n static deleteCustomVestingScheduleTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.CustomVestingSchedule, 'delete'].join(separator);\r\n }\r\n\r\n static exportCustomVestingScheduleTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.CustomVestingSchedule, 'export'].join(separator);\r\n }\r\n\r\n static uploadCustomVestingScheduleTableFile(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.CustomVestingSchedule, 'upload'].join(separator);\r\n }\r\n\r\n // <-- Custom Vesting Schedule\r\n\r\n // Generic Vesting Schedule -->\r\n\r\n static getGenericVestingScheduleTableList(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GenericVestingSchedule].join(separator);\r\n }\r\n\r\n static updateGenericVestingScheduleItem(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GenericVestingSchedule].join(separator);\r\n }\r\n\r\n static deleteGenericVestingScheduleTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GenericVestingSchedule, 'delete'].join(separator);\r\n }\r\n\r\n static validateGenericVestingSchedule(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GenericVestingSchedule, 'validate'].join(separator);\r\n }\r\n\r\n // <-- Generic Vesting Schedule\r\n\r\n // Employee Status -->\r\n\r\n static getEmployeeStatusTableList(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.EmployeeStatus].join(separator);\r\n }\r\n\r\n static getEmployeeStatusTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.EmployeeStatus, 'data'].join(separator);\r\n }\r\n\r\n static saveEmployeeStatusData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.EmployeeStatus].join(separator);\r\n }\r\n\r\n static uploadEmployeeStatusTableFile(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.EmployeeStatus, 'upload'].join(separator);\r\n }\r\n\r\n static deleteEmployeeStatusTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.EmployeeStatus, 'delete'].join(separator);\r\n }\r\n\r\n static exportEmployeeStatusTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.EmployeeStatus, 'export'].join(separator);\r\n }\r\n\r\n // <-- Employee Status\r\n\r\n // Grant Valuation -->\r\n\r\n static getGrantValuationTableList(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GrantValuation, 'valuationRef'].join(separator);\r\n }\r\n\r\n static uploadGrantValuationTableFile(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GrantValuation, 'upload'].join(separator);\r\n }\r\n\r\n static deleteGrantValuationTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GrantValuation, 'delete'].join(separator);\r\n }\r\n\r\n static saveGrantValuationData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GrantValuation, 'editTable'].join(separator);\r\n }\r\n\r\n static calculateGrantValuationValue(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GrantValuation, 'calculateFairValue'].join(separator);\r\n }\r\n\r\n static exportGrantValuationTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GrantValuation, 'export'].join(separator);\r\n }\r\n\r\n static checkIsColumnInUse(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GrantValuation, 'planUsed'].join(separator);\r\n }\r\n\r\n static editColumn(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GrantValuation, 'editPlan'].join(separator);\r\n }\r\n\r\n static deleteColumn(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.GrantValuation, 'deletePlan'].join(separator);\r\n }\r\n\r\n // <-- Grant Valuation\r\n\r\n // Activity Logs -->\r\n\r\n static getActivityLogsTableList(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ActivityLogs].join(separator);\r\n }\r\n\r\n static getActivityLogsPaginatedData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ActivityLogs, 'getAll'].join(separator);\r\n }\r\n\r\n static exportActivityLogsTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ActivityLogs, 'export'].join(separator);\r\n }\r\n\r\n // <-- Activity Logs\r\n\r\n // Expenses -->\r\n\r\n static getExpenseCalculationStatus(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ExpenseCalculations, 'state'].join(separator);\r\n }\r\n\r\n static validateExpenseCalculation(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ExpenseCalculations, 'data'].join(separator);\r\n }\r\n\r\n static startExpenseCalculation(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ExpenseCalculations, 'startCalculation'].join(separator);\r\n }\r\n\r\n static exportExpensesCalculation(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.MyIncentivePlanSummary, 'export'].join(\r\n separator\r\n );\r\n }\r\n\r\n static exportDetailedExpensesCalculation(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ExpenseCalculations, 'export'].join(separator);\r\n }\r\n\r\n static cancelExpensesCalculation(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ExpenseCalculations, 'cancel'].join(separator);\r\n }\r\n\r\n static expensesCalculationReportProgressHubUrl(): string {\r\n return [this.GeoRelatedUrl.replace(/\\/api$/, ''), ApiEntity.GenerateSbpExpenses].join(separator);\r\n }\r\n\r\n // <-- Expenses\r\n\r\n // Reports -->\r\n\r\n static getReportList(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports].join(separator);\r\n }\r\n\r\n static getReportSummaryTotalFilters(reportUId: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportUId),\r\n ReportsApiEntity.SummaryTotal,\r\n 'filter',\r\n ].join(separator);\r\n }\r\n\r\n static getReportSummaryTotalTableList(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.SummaryTotal,\r\n 'table',\r\n ].join(separator);\r\n }\r\n\r\n static exportSummaryTotalTableData(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.SummaryTotal, 'export'].join(separator);\r\n }\r\n\r\n static getReportSummaryEmployeeTableList(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.Employee,\r\n 'table',\r\n ].join(separator);\r\n }\r\n\r\n static exportSummaryEmployeeTableData(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.Employee, 'export'].join(separator);\r\n }\r\n\r\n static getReportSummaryGeographicalFilters(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.Geographical,\r\n 'filter',\r\n ].join(separator);\r\n }\r\n\r\n static getReportSummaryGeographicalTableList(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.Geographical,\r\n 'table',\r\n ].join(separator);\r\n }\r\n\r\n static exportSummaryGeographicalTableData(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.Geographical, 'export'].join(separator);\r\n }\r\n\r\n static getReportSummaryDepartmentFilters(reportUId: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportUId),\r\n ReportsApiEntity.Department,\r\n 'filter',\r\n ].join(separator);\r\n }\r\n\r\n static summaryDepartmentChart(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.Department, 'chart', 'get'].join(\r\n separator\r\n );\r\n }\r\n\r\n static getReportSummaryDepartmentTableList(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.Department,\r\n 'search',\r\n ].join(separator);\r\n }\r\n\r\n static exportSummaryDepartmentTableData(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.Department, 'export'].join(separator);\r\n }\r\n\r\n static getReportSummaryPlanFilters(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.Plan,\r\n 'filter',\r\n ].join(separator);\r\n }\r\n\r\n static getReportSummaryPlanTableList(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.Plan,\r\n 'table',\r\n ].join(separator);\r\n }\r\n\r\n static getReportSummaryPlanChart(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.Plan, 'chart'].join(separator);\r\n }\r\n\r\n static getReportSummaryPlanPieChart(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.Plan, 'pieChart'].join(separator);\r\n }\r\n\r\n static exportSummaryPlanTableData(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.Plan, 'export'].join(separator);\r\n }\r\n\r\n static getReportDetailedTableList(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.Detailed,\r\n 'table',\r\n ].join(separator);\r\n }\r\n\r\n static getReportFinalization(reportTimeStamp: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, encodeURIComponent(reportTimeStamp), 'finalization'].join(separator);\r\n }\r\n\r\n static finalizeReport(reportTimeStamp: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, encodeURIComponent(reportTimeStamp), 'finalize'].join(separator);\r\n }\r\n\r\n static deleteExpensesCalculation(reportTimeStamp: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, encodeURIComponent(reportTimeStamp)].join(separator);\r\n }\r\n\r\n static getDepartmentEntityList(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.Department,\r\n 'entities',\r\n ].join(separator);\r\n }\r\n\r\n static getDepartmentAList(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.Department,\r\n 'departmentAs',\r\n ].join(separator);\r\n }\r\n\r\n static getDepartmentBList(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.Department,\r\n 'departmentBs',\r\n ].join(separator);\r\n }\r\n\r\n static getDepartmentCList(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.Department,\r\n 'departmentCs',\r\n ].join(separator);\r\n }\r\n // ---------------------------------------ServerSidePaginatedAPI\r\n\r\n static getReportSummaryTotalPaginatedTableData(reportTUid: string, onlySums: boolean): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n reportTUid,\r\n ReportsApiEntity.SummaryTotal,\r\n ...(onlySums ? ['sums'] : []),\r\n 'search',\r\n ].join(separator);\r\n }\r\n\r\n static getReportSummaryGeographicalPaginatedTableData(reportTUid: string, onlySums: boolean): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n reportTUid,\r\n ReportsApiEntity.Geographical,\r\n ...(onlySums ? ['sums'] : []),\r\n 'search',\r\n ].join(separator);\r\n }\r\n\r\n static getReportSummaryDepartmentPaginatedTableData(reportTUid: string, onlySums: boolean): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n reportTUid,\r\n ReportsApiEntity.Department,\r\n ...(onlySums ? ['sums'] : []),\r\n 'search',\r\n ].join(separator);\r\n }\r\n\r\n static getReportSummaryPlanPaginatedTableData(reportTUid: string, onlySums: boolean): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n reportTUid,\r\n ReportsApiEntity.Plan,\r\n ...(onlySums ? ['sums'] : []),\r\n 'search',\r\n ].join(separator);\r\n }\r\n\r\n static getReportSummaryEmployeePaginatedTableData(reportTUid: string, onlySums: boolean): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n reportTUid,\r\n ReportsApiEntity.Employee,\r\n ...(onlySums ? ['sums'] : []),\r\n 'search',\r\n ].join(separator);\r\n }\r\n // ----------------------------\r\n\r\n static getReportSummaryTotalChart(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.SummaryTotal, 'chart'].join(separator);\r\n }\r\n\r\n static getSummaryGeographicalChart(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.Geographical, 'chart'].join(separator);\r\n }\r\n\r\n // <-- Reports\r\n\r\n // <-- Provisional Expense\r\n\r\n static getProvisionalExpensePaginatedTableData(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ProvisionExpense, reportUId, 'table'].join(separator);\r\n }\r\n\r\n static getProvisionalExpenseChartData(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ProvisionExpense, reportUId, 'chart'].join(separator);\r\n }\r\n\r\n static getProvisionalExpenseFilters(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ProvisionExpense, reportUId, 'filters'].join(separator);\r\n }\r\n\r\n static calculateProvisionalExpenseData(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ProvisionExpense, reportUId, 'calculate'].join(separator);\r\n }\r\n\r\n static uploadProvisionalExpenseTableFile(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ProvisionExpense, reportUId, 'upload'].join(separator);\r\n }\r\n\r\n static deleteProvisionalExpenseTableData(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ProvisionExpense, reportUId].join(separator);\r\n }\r\n\r\n static exportProvisionalExpenseTableData(reportUId: string): string {\r\n return `${[this.GeoRelatedUrl, ApiEntity.ProvisionExpense, 'export'].join(separator)}?reportUId=${reportUId}`;\r\n }\r\n\r\n // <-- Provisional Expense\r\n\r\n // True UP -->\r\n\r\n static trueUpStartCalculation(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.TrueUp, 'Calculate'].join(separator);\r\n }\r\n\r\n static getTrueUpInfoData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.TrueUp, 'Report'].join(separator);\r\n }\r\n\r\n static getTrueUpTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.TrueUp, 'TrueUpTable'].join(separator);\r\n }\r\n\r\n static getNewReportTrueUpTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.TrueUp, 'NewReportTable'].join(separator);\r\n }\r\n\r\n static getPreviousReportTrueUpTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.TrueUp, 'PreviousReportTable'].join(separator);\r\n }\r\n\r\n static deleteAllTrueUpData(timeStamp: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.TrueUp, encodeURIComponent(timeStamp)].join(separator);\r\n }\r\n\r\n static exportTrueUpTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.TrueUp, 'export'].join(separator);\r\n }\r\n\r\n // <-- True Up\r\n\r\n // Journal Entries -->\r\n\r\n static getJournalEntriesReportList(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.JournalEntries, 'finalReports'].join(separator);\r\n }\r\n\r\n static getFilterOptionsList(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.JournalEntries, 'filtersOptions'].join(separator);\r\n }\r\n\r\n static calculateData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.JournalEntries, 'calculate'].join(separator);\r\n }\r\n\r\n static exportJournalEntriesTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.JournalEntries, 'export'].join(separator);\r\n }\r\n\r\n // <-- Journal Entries\r\n\r\n // Files -->\r\n\r\n static getExportedAndPublicFiles(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Files, 'search'].join(separator);\r\n }\r\n\r\n static downloadPrivateFile(uid: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Files, uid, 'download'].join(separator);\r\n }\r\n\r\n static getTemplateFiles(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Files, 'templates'].join(separator);\r\n }\r\n\r\n static deleteExportReportFiles(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Files, 'delete'].join(separator);\r\n }\r\n\r\n // <-- Files\r\n\r\n // Notifications -->\r\n\r\n static notificationsHubUrl(): string {\r\n return [this.GeoRelatedUrl.replace(/\\/api$/, ''), ApiEntity.Notifications].join(separator);\r\n }\r\n\r\n static getNotificationList(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Notifications].join(separator);\r\n }\r\n\r\n static deleteNotification(id: T): string {\r\n return [this.GeoRelatedUrl, 'notification', id].join(separator);\r\n }\r\n\r\n // <-- Notifications\r\n\r\n // FileUploading -->\r\n\r\n static getFileUploadingState(apiEntity: IFileUploadingApiEntity): string {\r\n return [this.GeoRelatedUrl, apiEntity, 'uploadingState'].join(separator);\r\n }\r\n\r\n // <-- FileUploading\r\n\r\n // DataExporting -->\r\n\r\n static getDataExportingStatus(apiEntity: IExportingDataApiEntity): string {\r\n return [this.GeoRelatedUrl, apiEntity, 'exportStatus'].join(separator);\r\n }\r\n\r\n // <-- DataExporting\r\n\r\n // Localization -->\r\n\r\n static getLocales(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Localization, 'locales'].join(separator);\r\n }\r\n\r\n static getAsset(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Localization, 'asset/helpcenter'].join(separator);\r\n }\r\n\r\n static getLoginLocaleKeys(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Localization, 'loginPageKeyValues'].join(separator);\r\n }\r\n\r\n static getLocaleKeys(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Localization, 'KeyValues'].join(separator);\r\n }\r\n\r\n // <-- Localization\r\n\r\n // Performance Hurdles -->\r\n\r\n static getPerformanceHurdlesTableList(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.PerformanceHurdles, 'all'].join(separator);\r\n }\r\n\r\n static getPerformanceHurdlesData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.PerformanceHurdles, 'all'].join(separator);\r\n }\r\n\r\n static deletePerformanceHurdleTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.PerformanceHurdles, 'delete'].join(separator);\r\n }\r\n\r\n static addPerformanceHurdleData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.PerformanceHurdles, 'add'].join(separator);\r\n }\r\n\r\n static addOrUpdateEstimate(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.PerformanceHurdles, 'addOrUpdateEstimate'].join(separator);\r\n }\r\n\r\n static updatePerformanceHurdleData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.PerformanceHurdles, 'update'].join(separator);\r\n }\r\n\r\n static getPerformanceHurdleDataById(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.PerformanceHurdles].join(separator);\r\n }\r\n\r\n static getEstimateById(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.PerformanceHurdles, 'getEstimate'].join(separator);\r\n }\r\n\r\n static clearPerformanceHurdleEstimateDataById(performanceHurdleId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.PerformanceHurdles, 'deleteEstimates', performanceHurdleId].join(separator);\r\n }\r\n\r\n // <-- Performance Hurdles\r\n\r\n // Manage Employee Contracts -->\r\n\r\n static uploadManageEmployeeContractsFiles(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ManageEmployeeContracts, 'upload'].join(separator);\r\n }\r\n\r\n static deleteManageEmployeeContractsTableRows(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ManageEmployeeContracts, 'delete'].join(separator);\r\n }\r\n\r\n static getManageEmployeeContractsTableData(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ManageEmployeeContracts, 'search'].join(separator);\r\n }\r\n\r\n static getGrantPlans(): string {\r\n return [this.GeoRelatedUrl, 'valuation', 'plans'].join(separator);\r\n }\r\n\r\n static getManageEmployeeContractsQTY(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ManageEmployeeContracts, 'completedCount'].join(separator);\r\n }\r\n\r\n static manageEmployeeContractsHubUrl(): string {\r\n return [this.GeoRelatedUrl.replace(/\\/api$/, ''), ApiEntity.ManageEmployeeContracts].join(separator);\r\n }\r\n\r\n static getExtractedManageEmployeeContractData(uid: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ManageEmployeeContracts, uid].join(separator);\r\n }\r\n\r\n static saveManageEmployeeContractDetails(): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ManageEmployeeContracts, 'saveShareRegister'].join(separator);\r\n }\r\n\r\n static downloadPDFFile(uid: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.ManageEmployeeContracts, uid, 'file'].join(separator);\r\n }\r\n\r\n // <-- Manage Employee Contracts\r\n\r\n // <-- Expense Outlook\r\n\r\n static getReportSummaryExpenseOutlookFilters(reportTimeStamp: string): string {\r\n return [\r\n this.GeoRelatedUrl,\r\n ApiEntity.Reports,\r\n encodeURIComponent(reportTimeStamp),\r\n ReportsApiEntity.ExpenseOutlook,\r\n 'filter',\r\n ].join(separator);\r\n }\r\n\r\n static getReportSummaryExpenseOutlookChart(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.ExpenseOutlook, 'chart'].join(separator);\r\n }\r\n\r\n static getReportSummaryExpenseOutlookPaginatedTableData(reportTUid: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportTUid, ReportsApiEntity.ExpenseOutlook, 'search'].join(\r\n separator\r\n );\r\n }\r\n\r\n static exportSummaryExpenseOutlookTableData(reportUId: string): string {\r\n return [this.GeoRelatedUrl, ApiEntity.Reports, reportUId, ReportsApiEntity.ExpenseOutlook, 'export'].join(\r\n separator\r\n );\r\n }\r\n\r\n // <-- Expense Outlook\r\n}\r\n","import { store } from '../../../store';\r\nimport { setUserToken, setUser } from '../../../store/user/actions';\r\n\r\nimport * as Models from '../../shared.models';\r\nimport { OIDCUser } from '../../../OIDCAuth/models/OIDCUser';\r\n\r\nexport default class AuthenticationService {\r\n static logOut = (deleteUser = true): void => {\r\n if (deleteUser) {\r\n store.dispatch(setUser(null));\r\n }\r\n this.clearToken();\r\n };\r\n\r\n static setToken(tokenObj: OIDCUser): void {\r\n store.dispatch(setUserToken(tokenObj));\r\n }\r\n\r\n static clearToken(): void {\r\n store.dispatch(setUserToken(null));\r\n }\r\n\r\n static isAuthenticated(tokenObj: OIDCUser): boolean {\r\n return !!(tokenObj || store.getState().currentUser.tokenObj);\r\n }\r\n\r\n static isAuthorized(user?: Models.DM.UserGetDto): boolean {\r\n const currentUser: Models.DM.UserGetDto = user || (store.getState().currentUser.user as Models.DM.UserGetDto);\r\n return !!currentUser;\r\n }\r\n\r\n static getToken(): string {\r\n const storeCurrentUser: Models.BM.UserProfile = store.getState().currentUser;\r\n const token: string = storeCurrentUser?.tokenObj?.accessToken || '';\r\n return token;\r\n }\r\n}\r\n","export default class CommonService {\r\n static LikeSomeInList(list: Array, subj: string, exact = false): boolean {\r\n return list.some((listItem: string) => (!exact ? subj.indexOf(listItem) > -1 : subj === listItem));\r\n }\r\n}\r\n","import { setToLocalStorage, getFromLocalStorage } from '../../utils/localStorage';\r\nimport type { CurrentEnv } from '../../models/models.bl';\r\nimport { GeoCode } from '../../models/models.dl';\r\n\r\nexport default class ConfigService {\r\n private static apiUrls: Record = (window as any).ApiConfig.API_URLS;\r\n\r\n private static currentEnv: CurrentEnv = (window as any).ApiConfig.CURRENT_ENV;\r\n\r\n private static defaultGeoCode: GeoCode = (window as any).ApiConfig.DEFAULT_REGION;\r\n\r\n static get DefaultGeoCode(): GeoCode {\r\n return getFromLocalStorage('defaultRegion') || this.defaultGeoCode;\r\n }\r\n\r\n static get GeoRelatedCode(): GeoCode {\r\n return getFromLocalStorage('geoCode') || this.DefaultGeoCode;\r\n }\r\n\r\n static get ApiUrls(): Record {\r\n return this.apiUrls;\r\n }\r\n\r\n static get CurrentEnv(): CurrentEnv {\r\n return this.currentEnv;\r\n }\r\n\r\n static SetGeoCode(geoCode: GeoCode): void {\r\n this.defaultGeoCode = geoCode;\r\n setToLocalStorage('geoCode', geoCode);\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport { GridColumnConfig } from 'shared/configs/grid.config';\r\nimport type {\r\n ResponseTableDataType,\r\n CustomVestingScheduleTableData,\r\n IScheduleDataForGenerating,\r\n IScheduleGeneratedData,\r\n IScheduleData,\r\n} from 'shared/models/models.bl';\r\nimport { SelectedRowsType } from 'components/Table/interfaces';\r\nimport ApiUrlsService from './api-urls.service';\r\nimport { getParsedResponseData } from './helpers';\r\n\r\nexport default class CustomVestingSchedules {\r\n static getCustomVestingScheduleTableList(): Promise> {\r\n return axios\r\n .get(ApiUrlsService.getCustomVestingScheduleTableList())\r\n .then(({ data }) =>\r\n getParsedResponseData(data, GridColumnConfig.VestingScheduleConfig, false)\r\n )\r\n .catch(() => null);\r\n }\r\n\r\n static deleteCustomVestingScheduleTableData(ids: SelectedRowsType): Promise {\r\n return axios.post(ApiUrlsService.deleteCustomVestingScheduleTableData(), ids).then(({ data }) => data);\r\n }\r\n\r\n static exportCustomVestingScheduleTableData(): Promise {\r\n return axios.post(ApiUrlsService.exportCustomVestingScheduleTableData()).then(({ data }) => data);\r\n }\r\n\r\n static generateCustomVestingScheduleItem(saveData: IScheduleDataForGenerating): Promise {\r\n return axios.post(ApiUrlsService.generateCustomVestingScheduleItem(), saveData).then(({ data }) => data);\r\n }\r\n\r\n static updateCustomVestingScheduleItem(saveData: IScheduleData): Promise {\r\n return axios[saveData.uid ? 'put' : 'post'](ApiUrlsService.updateCustomVestingScheduleItem(), saveData).then(\r\n ({ data }) => data\r\n );\r\n }\r\n\r\n static uploadCustomVestingScheduleTableFile(file: File): Promise {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n return axios.post(ApiUrlsService.uploadCustomVestingScheduleTableFile(), formData).then(({ data }) => data);\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport type {\r\n ExpenseReportProgressDataResponse,\r\n IExpensesCalculationValidationResponse,\r\n IExportSummaryReportRequest,\r\n} from 'shared/models/models.bl';\r\nimport ApiUrlsService from 'shared/services/bl/api-urls.service';\r\n\r\nexport default class Expenses {\r\n static getCalculationStatus(): Promise {\r\n return axios.get(ApiUrlsService.getExpenseCalculationStatus()).then(({ data }) => data);\r\n }\r\n\r\n static validateCalculation(): Promise {\r\n return axios.get(ApiUrlsService.validateExpenseCalculation()).then(({ data }) => data);\r\n }\r\n\r\n static startCalculation(): Promise {\r\n return axios.post(ApiUrlsService.startExpenseCalculation()).then(({ data }) => data);\r\n }\r\n\r\n static exportCalculation(reportUId: string, body: IExportSummaryReportRequest): Promise {\r\n return axios.post(ApiUrlsService.exportExpensesCalculation(reportUId), body);\r\n }\r\n\r\n static exportDetailedCalculation(reportUId: string): Promise {\r\n return axios.post(ApiUrlsService.exportDetailedExpensesCalculation(), null, { params: { reportUId } });\r\n }\r\n\r\n static cancelExpensesCalculation(): Promise {\r\n return axios.put(ApiUrlsService.cancelExpensesCalculation()).then(({ data }) => data);\r\n }\r\n}\r\n","import axios, { Canceler, AxiosRequestConfig } from 'axios';\r\nimport * as Models from '../../shared.models';\r\nimport Configs from '../../shared.configs';\r\nimport { defaultPagingRequestData } from '../../configs/grid.config';\r\nimport ApiUrlsService from './api-urls.service';\r\nimport Expenses from './expenses.services';\r\nimport { getParsedResponseData } from './helpers';\r\nimport { IExportSummaryReportRequest } from '../../models/models.bl';\r\n\r\nenum CancelTokenKey {\r\n SummaryTotalPaginatedTableData = 'SummaryTotalPaginatedTableData',\r\n SummaryGeographicalPaginatedTableData = 'SummaryGeographicalPaginatedTableData',\r\n SummaryDepartmentPaginatedTableData = 'SummaryDepartmentPaginatedTableData',\r\n SummaryPlanPaginatedTableData = 'SummaryPlanPaginatedTableData',\r\n SummaryEmployeePaginatedTableData = 'SummaryEmployeePaginatedTableData',\r\n SummaryExpenseOutlookPaginatedTableData = 'SummaryExpenseOutlookPaginatedTableData',\r\n}\r\n\r\nexport const expensesReportsCancelTokens: Record = {\r\n [CancelTokenKey.SummaryTotalPaginatedTableData]: null,\r\n [CancelTokenKey.SummaryGeographicalPaginatedTableData]: null,\r\n [CancelTokenKey.SummaryDepartmentPaginatedTableData]: null,\r\n [CancelTokenKey.SummaryPlanPaginatedTableData]: null,\r\n [CancelTokenKey.SummaryEmployeePaginatedTableData]: null,\r\n [CancelTokenKey.SummaryExpenseOutlookPaginatedTableData]: null,\r\n};\r\n\r\nconst cancelPrevRequest = (tokenKey: CancelTokenKey) => {\r\n expensesReportsCancelTokens[tokenKey]?.();\r\n const source = axios.CancelToken.source();\r\n expensesReportsCancelTokens[tokenKey] = source.cancel;\r\n return source;\r\n};\r\n\r\nenum FilterName {\r\n grant = 'grant',\r\n location = 'location',\r\n plan = 'plan',\r\n grantPlan = 'grantPlan',\r\n}\r\n\r\nconst getRequestParams = (filterName: FilterName, value?: string): AxiosRequestConfig =>\r\n value\r\n ? {\r\n params: {\r\n [filterName]: value,\r\n },\r\n }\r\n : {};\r\n\r\nconst getPaginatedData = async <\r\n T,\r\n R extends Models.BM.IPaginatedTableResponseWithHeaders = Models.BM.IPaginatedTableResponseWithHeaders\r\n>({\r\n url,\r\n pagingData,\r\n filter,\r\n filterName,\r\n cancelTokenKey,\r\n initialTableConfig,\r\n}: {\r\n url: string;\r\n filterName?: FilterName;\r\n filter?: string;\r\n initialTableConfig: Models.BM.ColumnConfiguration[];\r\n pagingData?: Partial;\r\n cancelTokenKey?: CancelTokenKey;\r\n}): Promise => {\r\n const source = cancelTokenKey ? cancelPrevRequest(cancelTokenKey) : null;\r\n let body = pagingData || defaultPagingRequestData;\r\n if (!body.pageSize) {\r\n body = { ...body, ...defaultPagingRequestData };\r\n }\r\n if (filterName && filter) {\r\n body = { ...body, [filterName]: filter };\r\n }\r\n const { data } = await axios.post(url, body, {\r\n cancelToken: source?.token,\r\n });\r\n data.tableData = getParsedResponseData(data.tableData, initialTableConfig) as any;\r\n return data;\r\n};\r\n\r\nexport default class SBPExpensesReports {\r\n static getReportList(): Promise {\r\n return axios\r\n .get(ApiUrlsService.getReportList())\r\n .then(({ data }) => data)\r\n .catch(() => {});\r\n }\r\n\r\n static exportReport(reportUId: string, exportData: IExportSummaryReportRequest): Promise {\r\n return Expenses.exportCalculation(reportUId, exportData).then(() => reportUId);\r\n }\r\n\r\n static exportDetailedReport(reportUId: string): Promise {\r\n return Expenses.exportDetailedCalculation(reportUId).then(() => reportUId);\r\n }\r\n\r\n static deleteReport(reportTimeStamp: string): Promise {\r\n return axios.delete(ApiUrlsService.deleteExpensesCalculation(reportTimeStamp));\r\n }\r\n\r\n static getSummaryTotalFilters(reportUId: string): Promise {\r\n return axios\r\n .get(ApiUrlsService.getReportSummaryTotalFilters(reportUId))\r\n .then(({ data }) => data)\r\n .catch(() => null);\r\n }\r\n\r\n static getSummaryTotalTableList(\r\n reportTimeStamp: string,\r\n filter?: string\r\n ): Promise | null> {\r\n return axios\r\n .get(ApiUrlsService.getReportSummaryTotalTableList(reportTimeStamp), getRequestParams(FilterName.grant, filter))\r\n .then(({ data }) =>\r\n getParsedResponseData(data, Configs.Grid.GridColumnConfig.SummaryTotalConfig)\r\n )\r\n .catch(() => null);\r\n }\r\n\r\n static exportSummaryTotalTableData(reportUId: string): Promise {\r\n return axios.post(ApiUrlsService.exportSummaryTotalTableData(reportUId)).then(() => reportUId);\r\n }\r\n\r\n static getSummaryTotalChart(reportUId: string, filter?: string): Promise {\r\n return axios\r\n .get(ApiUrlsService.getReportSummaryTotalChart(reportUId), getRequestParams(FilterName.grant, filter))\r\n .then(({ data }) => data)\r\n .catch(() => null);\r\n }\r\n\r\n static getSummaryEmployeeTableList(\r\n reportTimeStamp: string\r\n ): Promise | null> {\r\n return axios\r\n .get(ApiUrlsService.getReportSummaryEmployeeTableList(reportTimeStamp))\r\n .then(({ data }) =>\r\n getParsedResponseData(data, Configs.Grid.GridColumnConfig.EmployeeViewConfig)\r\n )\r\n .catch(() => null);\r\n }\r\n\r\n static exportSummaryEmployeeTableData(reportUId: string): Promise {\r\n return axios.post(ApiUrlsService.exportSummaryEmployeeTableData(reportUId)).then(() => reportUId);\r\n }\r\n\r\n static getSummaryGeographicalFilters(reportTimeStamp: string): Promise {\r\n return axios\r\n .get(ApiUrlsService.getReportSummaryGeographicalFilters(reportTimeStamp))\r\n .then(({ data }) => data)\r\n .catch(() => null);\r\n }\r\n\r\n static getSummaryGeographicalChart(\r\n reportUId: string,\r\n filter?: string\r\n ): Promise {\r\n return axios\r\n .get(ApiUrlsService.getSummaryGeographicalChart(reportUId), getRequestParams(FilterName.location, filter))\r\n .then(({ data }) => data)\r\n .catch(() => null);\r\n }\r\n\r\n static getSummaryGeographicalTableList(\r\n reportTimeStamp: string,\r\n filter?: string\r\n ): Promise | null> {\r\n return axios\r\n .get(\r\n ApiUrlsService.getReportSummaryGeographicalTableList(reportTimeStamp),\r\n getRequestParams(FilterName.location, filter)\r\n )\r\n .then(({ data }) =>\r\n getParsedResponseData(\r\n data,\r\n Configs.Grid.GridColumnConfig.GeographicalViewConfig\r\n )\r\n )\r\n .catch(() => null);\r\n }\r\n\r\n static exportSummaryGeographicalTableData(reportUId: string, filter?: string): Promise {\r\n return axios\r\n .post(\r\n ApiUrlsService.exportSummaryGeographicalTableData(reportUId),\r\n null,\r\n getRequestParams(FilterName.location, filter)\r\n )\r\n .then(() => reportUId);\r\n }\r\n\r\n static getSummaryDepartmentUnitFilters(reportUId: string): Promise {\r\n return axios.get(ApiUrlsService.getReportSummaryDepartmentFilters(reportUId)).then(({ data }) => data);\r\n }\r\n\r\n static summaryDepartmentChart(\r\n reportUId: string,\r\n filter: Models.DM.IDepartmentFiltersData\r\n ): Promise {\r\n return axios\r\n .post(ApiUrlsService.summaryDepartmentChart(reportUId), filter)\r\n .then(({ data }) => data)\r\n .catch(() => null);\r\n }\r\n\r\n static getSummaryDepartmentTableList(\r\n reportUId: string,\r\n data: any\r\n ): Promise | null> {\r\n return axios\r\n .post(`${ApiUrlsService.getReportSummaryDepartmentTableList(reportUId)}`, data)\r\n .then(({ data: responseData }) =>\r\n getParsedResponseData(\r\n responseData,\r\n Configs.Grid.GridColumnConfig.DepartmentViewConfig\r\n )\r\n )\r\n .catch(() => null);\r\n }\r\n\r\n static exportSummaryDepartmentTableData(\r\n reportUId: string,\r\n filter?: Models.DM.IDepartmentFiltersData\r\n ): Promise {\r\n return axios.post(ApiUrlsService.exportSummaryDepartmentTableData(reportUId), filter).then(() => reportUId);\r\n }\r\n\r\n static getSummaryPlanFilters(reportTimeStamp: string): Promise {\r\n return axios\r\n .get(ApiUrlsService.getReportSummaryPlanFilters(reportTimeStamp))\r\n .then(({ data }) => data)\r\n .catch(() => null);\r\n }\r\n\r\n static getSummaryPlanTableList(\r\n reportTimeStamp: string,\r\n filter?: string\r\n ): Promise | null> {\r\n return axios\r\n .get(ApiUrlsService.getReportSummaryPlanTableList(reportTimeStamp), getRequestParams(FilterName.plan, filter))\r\n .then(({ data }) =>\r\n getParsedResponseData(data, Configs.Grid.GridColumnConfig.PlanViewConfig)\r\n )\r\n .catch(() => null);\r\n }\r\n\r\n static getSummaryPlanChart(\r\n reportTimeStamp: string,\r\n filter?: string\r\n ): Promise {\r\n return axios\r\n .get(ApiUrlsService.getReportSummaryPlanChart(reportTimeStamp), getRequestParams(FilterName.plan, filter))\r\n .then(({ data }) => data)\r\n .catch(() => null);\r\n }\r\n\r\n static getSummaryPlanPieChart(reportUId: string): Promise {\r\n return axios\r\n .get(ApiUrlsService.getReportSummaryPlanPieChart(reportUId))\r\n .then(({ data }) => data)\r\n .catch(() => null);\r\n }\r\n\r\n static exportSummaryPlanTableData(reportUId: string, filter?: string): Promise {\r\n return axios\r\n .post(ApiUrlsService.exportSummaryPlanTableData(reportUId), null, getRequestParams(FilterName.plan, filter))\r\n .then(() => reportUId);\r\n }\r\n\r\n static getFinalizationData(reportTimeStamp: string): Promise {\r\n return axios.get(ApiUrlsService.getReportFinalization(reportTimeStamp)).then(({ data }) => data);\r\n }\r\n\r\n static finalizeReport(reportTimeStamp: string, finalizationData: Models.BM.DataForFinalizationRequest): Promise {\r\n return axios.post(ApiUrlsService.finalizeReport(reportTimeStamp), finalizationData).then(({ data }) => data);\r\n }\r\n\r\n // INFO - paginated table requests\r\n\r\n static async getSummaryTotalPaginatedTableData(\r\n reportUId: string,\r\n onlySums: boolean,\r\n pagingData?: Models.BM.ITableDataInfoRequest,\r\n filter?: string\r\n ): Promise> {\r\n const data = await getPaginatedData({\r\n url: ApiUrlsService.getReportSummaryTotalPaginatedTableData(reportUId, onlySums),\r\n pagingData,\r\n filter,\r\n filterName: FilterName.grant,\r\n cancelTokenKey: CancelTokenKey.SummaryTotalPaginatedTableData,\r\n initialTableConfig: Configs.Grid.GridColumnConfig.SummaryTotalConfig,\r\n });\r\n return data;\r\n }\r\n\r\n static async getReportSummaryGeographicalPaginatedTableData(\r\n reportUId: string,\r\n onlySums: boolean,\r\n pagingData?: Models.BM.ITableDataInfoRequest,\r\n filter?: string\r\n ): Promise> {\r\n const data = await getPaginatedData({\r\n url: ApiUrlsService.getReportSummaryGeographicalPaginatedTableData(reportUId, onlySums),\r\n pagingData,\r\n filter,\r\n filterName: FilterName.location,\r\n cancelTokenKey: CancelTokenKey.SummaryGeographicalPaginatedTableData,\r\n initialTableConfig: Configs.Grid.GridColumnConfig.GeographicalViewConfig,\r\n });\r\n return data;\r\n }\r\n\r\n static async getReportSummaryDepartmentPaginatedTableData(\r\n reportUId: string,\r\n onlySums: boolean,\r\n pagingData: Models.BM.ITableDataInfoRequest,\r\n filter: Models.DM.IDepartmentFiltersData\r\n ): Promise> {\r\n const data = await getPaginatedData({\r\n url: ApiUrlsService.getReportSummaryDepartmentPaginatedTableData(reportUId, onlySums),\r\n pagingData: { ...pagingData, ...filter },\r\n cancelTokenKey: CancelTokenKey.SummaryDepartmentPaginatedTableData,\r\n initialTableConfig: Configs.Grid.GridColumnConfig.DepartmentViewConfig,\r\n });\r\n return data;\r\n }\r\n\r\n static async getSummaryPlanPaginatedTableData(\r\n reportUId: string,\r\n onlySums: boolean,\r\n pagingData?: Models.BM.ITableDataInfoRequest,\r\n filter?: string\r\n ): Promise> {\r\n const data = await getPaginatedData({\r\n url: ApiUrlsService.getReportSummaryPlanPaginatedTableData(reportUId, onlySums),\r\n pagingData,\r\n filter,\r\n filterName: FilterName.grantPlan,\r\n cancelTokenKey: CancelTokenKey.SummaryPlanPaginatedTableData,\r\n initialTableConfig: Configs.Grid.GridColumnConfig.PlanViewConfig,\r\n });\r\n return data;\r\n }\r\n\r\n static async getSummaryEmployeePaginatedTableData(\r\n reportUId: string,\r\n onlySums: boolean,\r\n pagingData?: Models.BM.ITableDataInfoRequest\r\n ): Promise> {\r\n const data = await getPaginatedData({\r\n url: ApiUrlsService.getReportSummaryEmployeePaginatedTableData(reportUId, onlySums),\r\n pagingData,\r\n cancelTokenKey: CancelTokenKey.SummaryEmployeePaginatedTableData,\r\n initialTableConfig: Configs.Grid.GridColumnConfig.EmployeeViewConfig,\r\n });\r\n return data;\r\n }\r\n\r\n // expense outlook services\r\n\r\n static getSummaryExpenseOutlookFilters(reportTimeStamp: string): Promise {\r\n return axios\r\n .get(ApiUrlsService.getReportSummaryExpenseOutlookFilters(reportTimeStamp))\r\n .then(({ data }) => data)\r\n .catch(() => null);\r\n }\r\n\r\n static getSummaryExpenseOutlookChart(\r\n reportTimeStamp: string,\r\n filter?: string\r\n ): Promise {\r\n return axios\r\n .get(\r\n ApiUrlsService.getReportSummaryExpenseOutlookChart(reportTimeStamp),\r\n getRequestParams(FilterName.grant, filter)\r\n )\r\n .then(({ data }) => data)\r\n .catch(() => null);\r\n }\r\n\r\n static async getSummaryExpenseOutlookPaginatedTableData(\r\n reportUId: string,\r\n pagingData?: Models.BM.ITableDataInfoRequest,\r\n filter?: string\r\n ): Promise> {\r\n const data = await getPaginatedData({\r\n url: ApiUrlsService.getReportSummaryExpenseOutlookPaginatedTableData(reportUId),\r\n pagingData,\r\n filter,\r\n filterName: FilterName.grantPlan,\r\n cancelTokenKey: CancelTokenKey.SummaryExpenseOutlookPaginatedTableData,\r\n initialTableConfig: Configs.Grid.GridColumnConfig.ExpenseOutlookViewConfig,\r\n });\r\n return data;\r\n }\r\n\r\n static exportSummaryExpenseOutlookTableData(reportUId: string, filter?: string): Promise {\r\n return axios\r\n .post(\r\n ApiUrlsService.exportSummaryExpenseOutlookTableData(reportUId),\r\n null,\r\n getRequestParams(FilterName.plan, filter)\r\n )\r\n .then(() => reportUId);\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport { FileUploadingState } from 'shared/models/enums.dl';\r\nimport { IFileUploadingApiEntity } from 'shared/models/models.bl';\r\nimport ApiUrlsService from './api-urls.service';\r\n\r\nexport default class FileUploading {\r\n static getFileUploadingState(type: IFileUploadingApiEntity): Promise {\r\n return axios.get(ApiUrlsService.getFileUploadingState(type)).then(({ data }) => data);\r\n }\r\n\r\n static checkIsUploadingStatus(status?: FileUploadingState): boolean {\r\n return status === FileUploadingState.New || status === FileUploadingState.InProgress;\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport { FilesContainerName, PublicFileCode } from 'shared/models/enums.dl';\r\nimport type {\r\n CurrentEnv,\r\n IExportedAndPublicFilesRequestData,\r\n IPaginatedTableResponse,\r\n ITableDataInfoRequest,\r\n} from 'shared/models/models.bl';\r\nimport type { PrivateFile, PublicFile, ReportFile, TemplateFile } from 'shared/models/models.dl';\r\nimport type { IServerSideSelected } from 'components/Table/interfaces';\r\nimport Utils from 'shared/shared.utils';\r\nimport ApiUrlsService from './api-urls.service';\r\nimport ConfigService from './config.service';\r\n\r\nconst publicFileNameEnvPart: Record = {\r\n DEV: '-',\r\n QA: '-',\r\n LOAD: '-',\r\n STAGE: '-',\r\n PROD: '-',\r\n};\r\ntype PublicFileFolder = 'acceptableusepolicy' | 'cookies' | 'notices' | 'privacy';\r\n\r\nconst publicFileFolderByCode: Record = {\r\n [PublicFileCode.Cookie]: 'cookies',\r\n [PublicFileCode.Notices]: 'notices',\r\n [PublicFileCode.PrivacyPolicy]: 'privacy',\r\n [PublicFileCode.TermsOfUse]: 'acceptableusepolicy',\r\n};\r\ntype PublicFileName = 'AUP.pdf' | 'CookiesNotice.pdf' | 'Notices.pdf' | 'Privacy.pdf';\r\ntype PublicFileDisplayName = 'Acceptable Use Policy' | 'Cookies Notice' | 'Notices' | 'Privacy';\r\ninterface PublicFileNames {\r\n fileName: PublicFileName;\r\n displayName: PublicFileDisplayName;\r\n}\r\n\r\nconst publicFileNameByCode: Record = {\r\n [PublicFileCode.Cookie]: { fileName: 'CookiesNotice.pdf', displayName: 'Cookies Notice' },\r\n [PublicFileCode.Notices]: { fileName: 'Notices.pdf', displayName: 'Notices' },\r\n [PublicFileCode.PrivacyPolicy]: { fileName: 'Privacy.pdf', displayName: 'Privacy' },\r\n [PublicFileCode.TermsOfUse]: { fileName: 'AUP.pdf', displayName: 'Acceptable Use Policy' },\r\n};\r\nexport default class Files {\r\n static formatFileDate = (date: string | Date | number): string => {\r\n return Utils.formatDate\r\n .dateFormatter(\r\n date,\r\n Utils.formatDate.DateFormat.MonthDayYearHoursMinutesSeconds24,\r\n Utils.formatDate.Locales.EN_ZA\r\n )\r\n .replaceAll('/', '-')\r\n .replaceAll(',', '');\r\n };\r\n\r\n static async downloadPrivateFile({ uid, fileName }: PrivateFile): Promise {\r\n try {\r\n const { data: blob } = await axios.get(ApiUrlsService.downloadPrivateFile(uid), { responseType: 'blob' });\r\n Files.downloadBlobToLocaleMachine(blob, fileName);\r\n } catch {\r\n // just to prevent failure\r\n }\r\n }\r\n\r\n private static downloadBlobToLocaleMachine(blob: Blob, fileName: PrivateFile['fileName']) {\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = fileName;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n }\r\n\r\n private static getPublicFileNameByCode(code: PublicFileCode): PublicFileNames {\r\n return publicFileNameByCode[code];\r\n }\r\n\r\n private static isPublicFileCode(code: PublicFileCode): boolean {\r\n const filesCode = [PublicFileCode.TermsOfUse, PublicFileCode.Cookie];\r\n\r\n return filesCode.includes(code);\r\n }\r\n\r\n static getPublicFileLink(code: PublicFileCode, localeId: string, countryCode?: string): string {\r\n const countryCodeUrl = countryCode && this.isPublicFileCode(code) ? `${countryCode}/` : '';\r\n\r\n return `/${publicFileFolderByCode[code]}/${localeId}/${countryCodeUrl}MIP${\r\n publicFileNameEnvPart[ConfigService.CurrentEnv]\r\n }${this.getPublicFileNameByCode(code).fileName}`;\r\n }\r\n\r\n static async getTemplateFiles(): Promise {\r\n const { data } = await axios.get(ApiUrlsService.getTemplateFiles());\r\n return Array.isArray(data) ? data : [];\r\n }\r\n\r\n static async getExportedAndPublicFiles(\r\n requestData: ITableDataInfoRequest\r\n ): Promise> {\r\n const filesRequestData: IExportedAndPublicFilesRequestData = {\r\n ...requestData,\r\n containerNames: [FilesContainerName.Reports, FilesContainerName.PublicFiles],\r\n };\r\n const { data } = await axios.post>(\r\n ApiUrlsService.getExportedAndPublicFiles(),\r\n filesRequestData\r\n );\r\n if (!Array.isArray(data.tableData)) {\r\n data.tableData = [];\r\n }\r\n return data;\r\n }\r\n\r\n static deleteExportReportFiles(selectedData: IServerSideSelected): Promise {\r\n return axios.post(ApiUrlsService.deleteExportReportFiles(), selectedData).then(({ data }) => data);\r\n }\r\n}\r\n","import * as Models from '../../shared.models';\r\n\r\nexport const getParsedRows = (items: T[], defaultItems: Models.BM.ColumnConfiguration[]): T[] => {\r\n let result = items;\r\n if (Array.isArray(result) && result.length) {\r\n // INFO: if need to use this method somewhere else with not response from API make\r\n // const result = {...items} here;\r\n let defaultHeadersLeft = defaultItems.length;\r\n const keysToRename = {} as Record;\r\n const responseDataKeys = Object.keys(result[0]) as Array;\r\n const responseDataKeysLength = responseDataKeys.length;\r\n for (let i = 0; i < responseDataKeysLength; i++) {\r\n const defaultHeader = defaultItems.find(\r\n (defaultItem) => (defaultItem.name as string).toLowerCase() === (responseDataKeys[i] as string).toLowerCase()\r\n );\r\n if (defaultHeader) {\r\n defaultHeadersLeft -= 1;\r\n if (defaultHeader.name !== responseDataKeys[i]) keysToRename[responseDataKeys[i]] = defaultHeader.name;\r\n }\r\n if (!defaultHeadersLeft) break;\r\n }\r\n\r\n const responseKeysToRename = Object.keys(keysToRename) as Array;\r\n\r\n if (!responseKeysToRename.length) return result;\r\n\r\n result = result.map((dataItem) => {\r\n responseKeysToRename.forEach((responseKey) => {\r\n dataItem[keysToRename[responseKey]] = dataItem[responseKey];\r\n delete dataItem[responseKey];\r\n });\r\n return dataItem;\r\n });\r\n }\r\n return result;\r\n};\r\n\r\nexport const getParsedHeaders = (\r\n items: Models.BM.ColumnConfiguration[],\r\n defaultItems: Models.BM.ColumnConfiguration[]\r\n): Models.BM.ColumnConfiguration[] => {\r\n const result = items;\r\n if (Array.isArray(result) && result.length) {\r\n // INFO: if need to use this method somewhere else with not response from API make\r\n // const result = {...headers} here;\r\n const resultLength = result.length;\r\n let defaultHeadersLeft = defaultItems.length;\r\n let fileNameHeaderIndex: number | null = null;\r\n for (let i = 0; i < resultLength; i++) {\r\n const responseHeaderKey = (result[i].name as string).toLowerCase();\r\n const defaultHeader = defaultItems.find(\r\n (defaultItem) => (defaultItem.name as string).toLowerCase() === responseHeaderKey\r\n );\r\n if (responseHeaderKey === 'filename') fileNameHeaderIndex = i;\r\n if (defaultHeader) {\r\n defaultHeadersLeft -= 1;\r\n result[i] = { ...defaultHeader, title: result[i].title };\r\n }\r\n if (!defaultHeadersLeft) break;\r\n }\r\n if (fileNameHeaderIndex !== null && fileNameHeaderIndex !== result.length - 1) {\r\n const fileNameHead = result.splice(fileNameHeaderIndex, 1);\r\n result.push(fileNameHead[0]);\r\n }\r\n }\r\n return result;\r\n};\r\n\r\nexport const getParsedResponseData = (\r\n data: Models.BM.ResponseTableDataType,\r\n defaultConfig: Models.BM.ColumnConfiguration[],\r\n parseData = true,\r\n parseHeaders = true\r\n): Models.BM.ResponseTableDataType => {\r\n if (!data) return null;\r\n const result = data;\r\n if (Array.isArray(result)) {\r\n return parseData ? getParsedRows(result, defaultConfig) : result;\r\n }\r\n if (Array.isArray(result?.data)) {\r\n if (parseData) result.data = getParsedRows(result.data, defaultConfig);\r\n }\r\n if (Array.isArray(result?.header)) {\r\n if (parseHeaders) result.header = getParsedHeaders(result.header, defaultConfig);\r\n }\r\n return result;\r\n};\r\n","import { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport const setIsLoading = (isLoading?: Interfaces.StoreType) =>\r\n ({\r\n type: Types.SET_IS_LOADING,\r\n payload: !!isLoading,\r\n } as const);\r\n","// eslint-disable-next-line\r\nimport { AxiosRequestConfig } from 'axios';\r\nimport { store } from '../../../store';\r\nimport { setIsLoading } from '../../../store/loader/actions';\r\n\r\nconst requestList: any[] = [];\r\n\r\nclass BlackListItem {\r\n public methods: Array;\r\n\r\n public url?: string;\r\n\r\n public regex?: RegExp;\r\n\r\n constructor(methods: Array, url?: string, regex?: RegExp) {\r\n this.methods = methods;\r\n this.url = url;\r\n this.regex = regex;\r\n }\r\n}\r\n\r\nconst loaderBlackList: Array = [new BlackListItem(['POST'])];\r\n\r\nexport default class LoaderService {\r\n static request(request: AxiosRequestConfig): void {\r\n requestList.push(request);\r\n\r\n if (!this.canChangeLoaderStatus(request)) {\r\n if (!store.getState().loader && requestList.length >= 1) {\r\n store.dispatch(setIsLoading(true));\r\n }\r\n }\r\n }\r\n\r\n static response(): void {\r\n requestList.splice(0, 1);\r\n if (requestList.length === 0) {\r\n store.dispatch(setIsLoading(false));\r\n }\r\n }\r\n\r\n private static canChangeLoaderStatus(request: AxiosRequestConfig): boolean {\r\n return loaderBlackList.some((item: BlackListItem): boolean => {\r\n return this.findMethod(item, request);\r\n });\r\n }\r\n\r\n private static findMethod(item: BlackListItem, request: AxiosRequestConfig): boolean {\r\n return item.methods.some((method: string) => {\r\n return method === request.method;\r\n });\r\n }\r\n}\r\n","import { DEFAULT_LOCALE, USER_LOCALE } from 'localization/helpers';\r\nimport axios, { CancelTokenSource } from 'axios';\r\nimport { store } from 'store';\r\nimport ApiUrlsService from './api-urls.service';\r\nimport AuthenticationService from './authentication.service';\r\nimport { ILocale, ILocaleOption } from '../../models/models.dl';\r\nimport { getFromLocalStorage, setToLocalStorage } from '../../utils/localStorage';\r\nimport { UserProfile } from '../../models/models.bl';\r\n\r\nlet localeKeysCancelToken: CancelTokenSource;\r\n\r\nexport default class Localization {\r\n static getLocales(): Promise {\r\n return axios.get(ApiUrlsService.getLocales()).then(({ data }) => data);\r\n }\r\n\r\n static getAsset(url: string): Promise {\r\n return axios.get(ApiUrlsService.getAsset(), { params: { urlPart: url } }).then(({ data }) => data);\r\n }\r\n\r\n static getLoginLocaleKeys(id: string): Promise> {\r\n return axios.get(ApiUrlsService.getLoginLocaleKeys(), { params: { localeCode: id } }).then(({ data }) => data);\r\n }\r\n\r\n static getLocaleKeys(id?: string): Promise> {\r\n if (localeKeysCancelToken) {\r\n localeKeysCancelToken.cancel();\r\n }\r\n localeKeysCancelToken = axios.CancelToken.source();\r\n\r\n return axios\r\n .get(ApiUrlsService.getLocaleKeys(), {\r\n params: { localeCode: id || '' },\r\n cancelToken: localeKeysCancelToken.token,\r\n })\r\n .then(({ data }) => data);\r\n }\r\n\r\n static getLoginLocaleCode(isError = false): string {\r\n if (isError) {\r\n return DEFAULT_LOCALE.id;\r\n }\r\n // MIP Login Page should be translated to preferred language in GASS settings,\r\n // that's why url parameter has higher priority than local storage code\r\n return Localization.getLocaleCodeFromUrl() || Localization.getLocaleCodeFromLocalStorage() || DEFAULT_LOCALE.id;\r\n }\r\n\r\n static getLocaleCode(isError = false): string {\r\n if (isError) {\r\n return DEFAULT_LOCALE.id;\r\n }\r\n return (\r\n Localization.getLocaleCodeFromUserConfig() || Localization.getLocaleCodeFromLocalStorage() || DEFAULT_LOCALE.id\r\n );\r\n }\r\n\r\n static getLocaleCodeByAuth(isAuthorized?: boolean): string {\r\n const authorized = typeof isAuthorized === 'boolean' ? isAuthorized : AuthenticationService.isAuthorized();\r\n return authorized ? Localization.getLocaleCode() : Localization.getLoginLocaleCode();\r\n }\r\n\r\n private static getLocaleCodeFromUrl(): ILocale['localeCode'] | null {\r\n const url = new URL(window.location.href);\r\n const locale: ILocale['localeCode'] | null = url.searchParams.get('locale');\r\n\r\n if (locale) {\r\n setToLocalStorage(USER_LOCALE, { id: locale, text: '' });\r\n url.searchParams.delete('locale');\r\n window.history.replaceState(null, '', url.pathname + url.searchParams.toString() + url.hash);\r\n }\r\n\r\n return locale;\r\n }\r\n\r\n private static getLocaleCodeFromUserConfig(): ILocale['localeCode'] | null {\r\n const user = store.getState().currentUser.user || getFromLocalStorage('currentUser')?.user || null;\r\n\r\n return user?.settings?.locale || null;\r\n }\r\n\r\n private static getLocaleCodeFromLocalStorage(): ILocale['localeCode'] | null {\r\n const locale = getFromLocalStorage(USER_LOCALE);\r\n\r\n return locale?.id || null;\r\n }\r\n}\r\n\r\n// MOCK RESPONSES:\r\n// getLocales -> [{\"localeCode\":\"en-US\",\"nativeName\":\"English (United States)\"},{\"localeCode\":\"fr-CA\",\"nativeName\":\"français (Canada)\"}]\r\n","import axios, { Canceler } from 'axios';\r\nimport ApiUrlsService from './api-urls.service';\r\nimport { GridColumnConfig, defaultPagingRequestData } from '../../configs/grid.config';\r\nimport type {\r\n IPaginatedTableResponse,\r\n IPaginatedTableResponseWithHeaders,\r\n ColumnConfiguration,\r\n IProvisionalExpenseTableDataResponse,\r\n IProvisionalExpenseFiltersResponse,\r\n IProvisionalExpenseCalculationResult,\r\n IUploadFileResponse,\r\n IProvisionalExpenseTableDataRequest,\r\n IProvisionalExpenseFiltersRequest,\r\n IProvisionalExpenseChartDataResponse,\r\n} from '../../models/models.bl';\r\n\r\nenum CancelTokenKey {\r\n GetTableData = 'GetTableData',\r\n GetChartData = 'GetChartData',\r\n}\r\n\r\nconst CancelTokens: Record = {\r\n [CancelTokenKey.GetTableData]: null,\r\n [CancelTokenKey.GetChartData]: null,\r\n};\r\n\r\nconst cancelPrevRequest = (tokenKey: CancelTokenKey) => {\r\n CancelTokens[tokenKey]?.();\r\n const source = axios.CancelToken.source();\r\n CancelTokens[tokenKey] = source.cancel;\r\n return source;\r\n};\r\n\r\nconst getPaginatedData = async ({\r\n url,\r\n pagingData,\r\n cancelTokenKey,\r\n initialTableConfig,\r\n}: {\r\n url: string;\r\n pagingData?: IProvisionalExpenseTableDataRequest;\r\n initialTableConfig: ColumnConfiguration[];\r\n cancelTokenKey?: CancelTokenKey;\r\n}): Promise> => {\r\n const source = cancelTokenKey ? cancelPrevRequest(cancelTokenKey) : null;\r\n const body = pagingData || defaultPagingRequestData;\r\n const { data } = await axios.post>(url, body, {\r\n cancelToken: source?.token,\r\n });\r\n\r\n return {\r\n ...data,\r\n tableData: {\r\n data: data.tableData,\r\n header: initialTableConfig,\r\n },\r\n };\r\n};\r\n\r\nexport default class ProvisionalExpense {\r\n static async getTableData(\r\n reportUId: string,\r\n pagingData?: IProvisionalExpenseTableDataRequest\r\n ): Promise> {\r\n const data = await getPaginatedData({\r\n url: ApiUrlsService.getProvisionalExpensePaginatedTableData(reportUId),\r\n pagingData,\r\n cancelTokenKey: CancelTokenKey.GetTableData,\r\n initialTableConfig: GridColumnConfig.ProvisionalExpenseConfig,\r\n });\r\n return data;\r\n }\r\n\r\n static async getChartData(\r\n reportUId: string,\r\n filter?: IProvisionalExpenseFiltersRequest\r\n ): Promise {\r\n const source = cancelPrevRequest(CancelTokenKey.GetChartData);\r\n const { data } = await axios.post(\r\n ApiUrlsService.getProvisionalExpenseChartData(reportUId),\r\n filter,\r\n { cancelToken: source.token }\r\n );\r\n return data || [];\r\n }\r\n\r\n static getFilters(reportUId: string): Promise {\r\n return axios.get(ApiUrlsService.getProvisionalExpenseFilters(reportUId)).then(({ data }) => data);\r\n }\r\n\r\n static uploadFile(file: File, reportUId: string): Promise {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n return axios.post(ApiUrlsService.uploadProvisionalExpenseTableFile(reportUId), formData).then(({ data }) => data);\r\n }\r\n\r\n static delete(reportUId: string): Promise {\r\n return axios.delete(ApiUrlsService.deleteProvisionalExpenseTableData(reportUId)).then(({ data }) => data);\r\n }\r\n\r\n static export(reportUId: string): Promise {\r\n return axios.post(ApiUrlsService.exportProvisionalExpenseTableData(reportUId)).then(({ data }) => data);\r\n }\r\n\r\n static calculate(reportUId: string): Promise {\r\n return axios.post(ApiUrlsService.calculateProvisionalExpenseData(reportUId)).then(({ data }) => data);\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport { ITableDataInfoRequest } from 'shared/models/models.bl';\r\nimport { SelectedRowsType } from '../../../components/Table/interfaces';\r\nimport Configs from '../../shared.configs';\r\nimport * as Models from '../../shared.models';\r\nimport ApiUrlsService from './api-urls.service';\r\nimport { getParsedResponseData } from './helpers';\r\n\r\nexport default class ShareRegister {\r\n static getShareRegisterTableList(): Promise> {\r\n return axios\r\n .get(ApiUrlsService.getShareRegisterTableList())\r\n .then(({ data }) =>\r\n getParsedResponseData(data, Configs.Grid.GridColumnConfig.ShareRegisterConfig)\r\n )\r\n .catch(() => null);\r\n }\r\n\r\n static getShareRegisterData(\r\n data: ITableDataInfoRequest\r\n ): Promise> {\r\n return axios.post(ApiUrlsService.getShareRegisterData(), data).catch(() => null);\r\n }\r\n\r\n static uploadShareRegisterTableFile(file: File, forfeitureRate?: number): Promise {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n formData.append('forfeitureRate', `${forfeitureRate || 0}`);\r\n return axios.post(ApiUrlsService.uploadShareRegisterTableFile(), formData).then(({ data }) => data);\r\n }\r\n\r\n static deleteShareRegisterTableData(ids: SelectedRowsType): Promise {\r\n return axios.post(ApiUrlsService.deleteShareRegisterTableData(), ids).then(({ data }) => data);\r\n }\r\n\r\n static exportShareRegisterTableData(): Promise {\r\n return axios.post(ApiUrlsService.exportShareRegisterTableData()).then(({ data }) => data);\r\n }\r\n\r\n static updateShareRegisterItem(data: Models.BM.IGrantRequestData): Promise {\r\n return axios.put(ApiUrlsService.updateShareRegisterItem(), data).then((response) => response);\r\n }\r\n\r\n static getVestingSchedules(): Promise {\r\n return axios.get(ApiUrlsService.getVestingSchedules()).then(({ data }) => data);\r\n }\r\n\r\n static checkCustomVestingScheduleForNewGrantId(\r\n grantId: Models.BM.IGrantRequestData['id']\r\n ): Promise> {\r\n return axios.post(ApiUrlsService.checkCustomVestingScheduleForNewGrantId(), { grantId }).then(({ data }) => data);\r\n }\r\n}\r\n","import type { FC } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nconst TranslatedText: FC<{ message: string }> = ({ message }) => {\r\n const { t } = useTranslation();\r\n\r\n return t(message);\r\n};\r\n\r\nexport default TranslatedText;\r\n","import React from 'react';\r\nimport { toast, ToastOptions } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport TranslatedText from 'components/TranslatedText';\r\nimport ApiUrlsService from './api-urls.service';\r\n\r\nexport const toasterMessages = {\r\n [ApiUrlsService.startExpenseCalculation()]: 'SnackBarMessage.CalculationStarted',\r\n [ApiUrlsService.trueUpStartCalculation()]: 'SnackBarMessage.CalculationComplete',\r\n [ApiUrlsService.saveManageEmployeeContractDetails()]: 'EmployeeContractDetails.Saved',\r\n};\r\n\r\nexport enum DefaultResponseErrorText {\r\n NetworkError = 'SnackBarMessage.NetworkError',\r\n SomethingWentWrong = 'SnackBarMessage.SomethingWentWrong',\r\n Unauthorized = 'SnackBarMessage.Unauthorized',\r\n Forbidden = 'SnackBarMessage.Forbidden',\r\n NotFound = 'SnackBarMessage.NotFound',\r\n ServiceUnavailable = 'SnackBarMessage.ServiceIsTemporarilyUnavailable',\r\n RequestAborted = 'SnackBarMessage.RequestAborted',\r\n BadRequest = 'SnackBarMessage.BadRequest',\r\n}\r\n\r\nconst generateCheckerForSameToasterText = () => {\r\n let lastMsg = '';\r\n return (\r\n preventDuplicates?: boolean\r\n ): {\r\n checkMsg: (msg: string) => boolean;\r\n reset: () => void;\r\n } | null =>\r\n preventDuplicates\r\n ? {\r\n checkMsg: (msg) => {\r\n if (msg === lastMsg) return true;\r\n lastMsg = msg;\r\n return false;\r\n },\r\n reset: () => {\r\n lastMsg = '';\r\n },\r\n }\r\n : null;\r\n};\r\n\r\nconst getDuplicatedErrorTextChecker = generateCheckerForSameToasterText();\r\n\r\nexport default class ToasterService {\r\n static error(text?: string, preventDuplicates = false, isToastClose = false): void {\r\n const resultText = text || DefaultResponseErrorText.SomethingWentWrong;\r\n const sameTextChecker = getDuplicatedErrorTextChecker(preventDuplicates);\r\n if (sameTextChecker?.checkMsg(resultText)) return;\r\n toast(, {\r\n toastId: this.getId(),\r\n position: 'bottom-center',\r\n onClose: sameTextChecker?.reset,\r\n type: 'error',\r\n autoClose: isToastClose ? false : 5000,\r\n });\r\n }\r\n\r\n static warn(text: string): void {\r\n toast(, {\r\n toastId: this.getId(),\r\n position: 'bottom-center',\r\n type: 'warning',\r\n });\r\n }\r\n\r\n static success(text: string): void {\r\n toast(, {\r\n toastId: this.getId(),\r\n position: 'bottom-center',\r\n type: 'success',\r\n });\r\n }\r\n\r\n static custom(component: React.ReactNode, options: ToastOptions = {}): void {\r\n toast(component, {\r\n ...options,\r\n toastId: this.getId(),\r\n });\r\n }\r\n\r\n private static getId = (() => {\r\n let counter = 1;\r\n return (): number => Date.now() + counter++;\r\n })();\r\n}\r\n","import axios from 'axios';\r\nimport { store } from 'store';\r\nimport { StoreActions } from 'store/actions';\r\nimport ApiUrlsService from '../bl/api-urls.service';\r\nimport * as Models from '../../shared.models';\r\nimport ConfigService from '../bl/config.service';\r\nimport { getFromLocalStorage } from '../../utils/localStorage';\r\nimport { USER_LOCALE } from '../../../localization/helpers';\r\nimport { ILocaleOption } from '../../models/models.dl';\r\n\r\nexport default class UserDataService {\r\n private static getUserGeoCode(): Promise {\r\n return axios.get(ApiUrlsService.getUserGeoCode()).then(({ data }) => {\r\n ConfigService.SetGeoCode(data);\r\n return data;\r\n });\r\n }\r\n\r\n static getUserProfile = (): Promise => {\r\n return this.getUserGeoCode()\r\n .then(async () => {\r\n store.dispatch(StoreActions.Localization.setIsLoadingLocaleKeys(true));\r\n\r\n // Backend gets information about user locale by Bearer token,\r\n // that's why locale code is optional parameter in 'getUserProfile' API\r\n const [userData] = await Promise.all([\r\n axios.get(ApiUrlsService.getUserProfile()).then(({ data }) => data),\r\n store.dispatch(StoreActions.Localization.getLocaleKeys()),\r\n ]);\r\n\r\n // If a new user (or old without locale) selected locale on Login Page, fetch localeKeys by selected locale\r\n if (!userData?.settings?.locale) {\r\n const userLocale = getFromLocalStorage(USER_LOCALE) as ILocaleOption;\r\n if (userLocale) {\r\n await store.dispatch(StoreActions.Localization.getLocaleKeys(userLocale.id));\r\n }\r\n }\r\n return userData;\r\n })\r\n .then((data) => {\r\n store.dispatch(StoreActions.Localization.setIsLoadedLocaleKeys(true));\r\n store.dispatch(StoreActions.Localization.setIsLoadingLocaleKeys(false));\r\n\r\n return data;\r\n });\r\n };\r\n\r\n static saveUserSettings(settings: Models.DM.UserSettings): Promise {\r\n return axios.post(ApiUrlsService.saveUserSettings(), settings).then(() => settings);\r\n }\r\n\r\n static clearUserCash(): Promise {\r\n return axios\r\n .post(ApiUrlsService.clearUserCash())\r\n .then(({ data }) => data)\r\n .catch(() => {});\r\n }\r\n}\r\n","import * as Grid from './configs/grid.config';\r\n\r\nconst Configs = {\r\n Grid,\r\n};\r\n\r\nexport default Configs;\r\n","import { RefObject, useEffect } from 'react';\r\n\r\ntype AnyEvent = MouseEvent | TouchEvent;\r\n\r\nfunction useOnClickOutside(\r\n ref: RefObject,\r\n handler: (event: AnyEvent) => void,\r\n additionalRef?: RefObject\r\n) {\r\n useEffect(() => {\r\n const listener = (event: AnyEvent) => {\r\n const el = ref?.current;\r\n\r\n // Do nothing if clicking ref's element or descendent elements\r\n if (!el || el.contains(event.target as Node) || additionalRef?.current?.contains(event.target as Node)) {\r\n return;\r\n }\r\n\r\n handler(event);\r\n };\r\n\r\n document.addEventListener(`mousedown`, listener);\r\n document.addEventListener(`touchstart`, listener);\r\n\r\n return () => {\r\n document.removeEventListener(`mousedown`, listener);\r\n document.removeEventListener(`touchstart`, listener);\r\n };\r\n\r\n // Reload only if ref or handler changes\r\n }, [ref, handler, additionalRef]);\r\n}\r\n\r\nexport default useOnClickOutside;\r\n","import { useState, useEffect } from 'react';\r\n\r\nfunction useDebounce(value: T, delay: number): T {\r\n // State and setters for debounced value\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n useEffect(\r\n () => {\r\n // Update debounced value after delay\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n // Cancel the timeout if value changes (also on delay change or unmount)\r\n // This is how we prevent debounced value from updating if value is changed ...\r\n // .. within the delay period. Timeout gets cleared and restarted.\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n },\r\n [value, delay] // Only re-call effect if value or delay changes\r\n );\r\n return debouncedValue;\r\n}\r\n\r\nexport default useDebounce;\r\n","import { useState, useEffect, Dispatch, SetStateAction, useRef, useCallback } from 'react';\r\nimport { ITableDataInfoRequest } from 'shared/models/models.bl';\r\nimport type { SortDirectionType, SelectedRowsType, IColumnConfig } from '../../components/Table/interfaces';\r\nimport Utils from '../shared.utils';\r\n\r\ninterface SortColumnData {\r\n sortDirection: SortDirectionType;\r\n activeColumnName?: keyof T;\r\n}\r\n\r\ninterface UseTableResultType {\r\n selected: SelectedRowsType;\r\n setSelected: Dispatch>>;\r\n sortColumnData: SortColumnData;\r\n setSortColumnData: Dispatch>>;\r\n search?: string;\r\n debouncedSearch?: string;\r\n setSearch: (value: string) => void;\r\n filteredRows: T[];\r\n setIsServerSideAllChecked: Dispatch>;\r\n isServerSideAllChecked: boolean;\r\n isServerSideTable: boolean;\r\n}\r\n\r\ninterface UseTableProps {\r\n rows?: T[];\r\n columns?: IColumnConfig[];\r\n defaultSortKey?: IColumnConfig['name'] | null;\r\n preventSortValues?: Array;\r\n onSetTableInfoChange?: Dispatch>;\r\n defaultSortDirection?: SortDirectionType;\r\n}\r\n\r\nfunction useTable({\r\n rows,\r\n columns,\r\n defaultSortKey,\r\n preventSortValues,\r\n onSetTableInfoChange,\r\n defaultSortDirection,\r\n}: UseTableProps): UseTableResultType {\r\n const isServerSideTable = !!onSetTableInfoChange;\r\n\r\n const searchTimeoutRef = useRef>();\r\n const [selected, setSelected] = useState>([]);\r\n const [isServerSideAllChecked, setIsServerSideAllChecked] = useState(false);\r\n const [sortColumnData, setSortColumnData] = useState>({\r\n sortDirection: defaultSortDirection || 'asc',\r\n ...(columns?.[0]?.name && defaultSortKey !== null ? { activeColumnName: defaultSortKey || columns[0].name } : {}),\r\n });\r\n const [debouncedSearch, setDebouncedSearch] = useState('');\r\n\r\n const [filteredRows, setFilteredRows] = useState(rows || ([] as T[]));\r\n\r\n const handleSearch = useCallback((value: string) => {\r\n if (searchTimeoutRef.current) {\r\n clearTimeout(searchTimeoutRef.current);\r\n }\r\n searchTimeoutRef.current = setTimeout(() => {\r\n setDebouncedSearch(value);\r\n }, 500);\r\n }, []);\r\n\r\n useEffect(\r\n () => () => {\r\n if (searchTimeoutRef.current) clearTimeout(searchTimeoutRef.current);\r\n },\r\n []\r\n );\r\n\r\n useEffect(() => {\r\n if ((rows?.length || onSetTableInfoChange) && columns?.length) {\r\n if (onSetTableInfoChange) {\r\n onSetTableInfoChange((prev) => {\r\n const orderBy = (sortColumnData.activeColumnName as string) || '';\r\n const asc = sortColumnData.sortDirection === 'asc';\r\n\r\n if (prev.searchBy === debouncedSearch && (!orderBy || (prev.orderBy === orderBy && prev.asc === asc))) {\r\n return prev;\r\n }\r\n return {\r\n ...prev,\r\n searchBy: debouncedSearch,\r\n orderBy,\r\n asc,\r\n };\r\n });\r\n } else if (rows?.length) {\r\n const { sortDirection, activeColumnName } = sortColumnData;\r\n setSortColumnData((prev) =>\r\n !prev.activeColumnName && defaultSortKey !== null\r\n ? {\r\n ...prev,\r\n activeColumnName: defaultSortKey || columns[0].name,\r\n }\r\n : prev\r\n );\r\n setFilteredRows((prev) => {\r\n if (!activeColumnName && !columns[0].name) return prev;\r\n let newRows = rows;\r\n if (debouncedSearch) {\r\n newRows = newRows.filter((row) =>\r\n columns.some((column) => {\r\n // @ts-ignore\r\n let value = row[column.name] === 0 || !!row[column.name] ? `${row[column.name]}` : '';\r\n if (column.dateFormat) value = Utils.formatDate.dateFormatter(value, column.dateFormat);\r\n return value?.toLowerCase()?.indexOf(debouncedSearch.toLowerCase()) > -1;\r\n })\r\n ) as T[];\r\n }\r\n const activeSortName = activeColumnName;\r\n const sortColumnName =\r\n defaultSortKey === null && !activeSortName ? null : activeColumnName || defaultSortKey || columns[0].name;\r\n if (sortColumnName) {\r\n newRows = [...newRows].sort((a, b) =>\r\n preventSortValues?.includes(a[sortColumnName])\r\n ? 0\r\n : Utils.simpleSort(sortDirection)(a[sortColumnName], b[sortColumnName])\r\n );\r\n }\r\n return newRows;\r\n });\r\n }\r\n }\r\n }, [debouncedSearch, rows, columns, sortColumnData, defaultSortKey, onSetTableInfoChange]);\r\n\r\n useEffect(() => {\r\n if (!rows?.length) {\r\n setSelected([]);\r\n setSortColumnData({\r\n sortDirection: defaultSortDirection || 'asc',\r\n ...(columns?.[0]?.name && defaultSortKey !== null\r\n ? { activeColumnName: defaultSortKey || columns[0].name }\r\n : {}),\r\n });\r\n setFilteredRows([]);\r\n }\r\n }, [rows, columns?.[0]?.name, defaultSortKey, defaultSortDirection]);\r\n\r\n return {\r\n selected,\r\n setSelected,\r\n sortColumnData,\r\n setSortColumnData,\r\n search: undefined,\r\n debouncedSearch,\r\n setSearch: handleSearch,\r\n filteredRows: onSetTableInfoChange ? rows || [] : filteredRows,\r\n setIsServerSideAllChecked,\r\n isServerSideAllChecked,\r\n isServerSideTable,\r\n };\r\n}\r\n\r\nexport default useTable;\r\n","export const getPreviousEnabled = (currentPage: number): boolean => currentPage > 0;\r\n\r\nexport const getNextEnabled = (currentPage: number, totalPages: number): boolean => currentPage + 1 < totalPages;\r\n\r\nexport const getTotalPages = (totalItems: number, pageSize: number): number => Math.ceil(totalItems / pageSize);\r\n\r\nexport const getStartIndex = (pageSize: number, currentPage: number): number => pageSize * currentPage;\r\n\r\nexport const getEndIndex = (pageSize: number, currentPage: number, totalItems: number): number => {\r\n const lastPageEndIndex = pageSize * (currentPage + 1);\r\n\r\n if (lastPageEndIndex > totalItems) {\r\n return totalItems - 1;\r\n }\r\n\r\n return lastPageEndIndex - 1;\r\n};\r\n\r\nexport const limitPageBounds =\r\n (totalItems: number, pageSize: number) =>\r\n (page: number): number =>\r\n Math.min(Math.max(page, 0), getTotalPages(totalItems, pageSize) - 1);\r\n\r\nexport type PaginationState = {\r\n totalItems: number;\r\n pageSize: number;\r\n currentPage: number;\r\n};\r\n\r\nexport type PaginationMeta = {\r\n totalPages: number;\r\n startIndex: number;\r\n endIndex: number;\r\n previousEnabled: boolean;\r\n nextEnabled: boolean;\r\n};\r\n\r\nexport const getPaginationMeta = ({ totalItems, pageSize, currentPage }: PaginationState): PaginationMeta => {\r\n const totalPages = getTotalPages(totalItems, pageSize);\r\n return {\r\n totalPages,\r\n startIndex: getStartIndex(pageSize, currentPage),\r\n endIndex: getEndIndex(pageSize, currentPage, totalItems),\r\n previousEnabled: getPreviousEnabled(currentPage),\r\n nextEnabled: getNextEnabled(currentPage, totalPages),\r\n };\r\n};\r\n","import { limitPageBounds, PaginationState } from './paginationMeta';\r\n\r\ntype CurrentPageActions = { type: 'NEXT_PAGE' } | { type: 'PREVIOUS_PAGE' } | { type: 'SET_PAGE'; page: number };\r\n\r\ntype TotalItemsActions = {\r\n type: 'SET_TOTALITEMS';\r\n totalItems: number;\r\n nextPage?: number;\r\n};\r\n\r\ntype PageSizeActions = {\r\n type: 'SET_PAGESIZE';\r\n pageSize: number;\r\n nextPage?: number;\r\n};\r\n\r\ntype PaginationStateReducerActions = CurrentPageActions | TotalItemsActions | PageSizeActions;\r\n\r\nconst getCurrentPageReducer = (rootState: PaginationState) =>\r\n function currentPageReducer(state: PaginationState['currentPage'], action: PaginationStateReducerActions) {\r\n switch (action.type) {\r\n case 'SET_PAGE':\r\n return limitPageBounds(rootState.totalItems, rootState.pageSize)(action.page);\r\n case 'NEXT_PAGE':\r\n return limitPageBounds(rootState.totalItems, rootState.pageSize)(state + 1);\r\n case 'PREVIOUS_PAGE':\r\n return limitPageBounds(rootState.totalItems, rootState.pageSize)(state - 1);\r\n case 'SET_PAGESIZE':\r\n return limitPageBounds(rootState.totalItems, action.pageSize)(action.nextPage ?? state);\r\n case 'SET_TOTALITEMS':\r\n return limitPageBounds(action.totalItems, rootState.pageSize)(action.nextPage ?? state);\r\n /* istanbul ignore next */\r\n default:\r\n return state;\r\n }\r\n };\r\n\r\nfunction totalItemsReducer(state: PaginationState['totalItems'], action: TotalItemsActions) {\r\n switch (action.type) {\r\n case 'SET_TOTALITEMS':\r\n return action.totalItems;\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nfunction pageSizeReducer(state: PaginationState['pageSize'], action: PageSizeActions) {\r\n switch (action.type) {\r\n case 'SET_PAGESIZE':\r\n return action.pageSize;\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport function paginationReducer(state: PaginationState, action: PaginationStateReducerActions): PaginationState {\r\n return {\r\n currentPage: getCurrentPageReducer(state)(state.currentPage, action as CurrentPageActions),\r\n totalItems: totalItemsReducer(state.totalItems, action as TotalItemsActions),\r\n pageSize: pageSizeReducer(state.pageSize, action as PageSizeActions),\r\n };\r\n}\r\n","import { useCallback, useEffect, useMemo, useRef, useReducer, Dispatch, SetStateAction } from 'react';\r\nimport { ITableDataInfoRequest } from 'shared/models/models.bl';\r\nimport { getPaginationMeta, PaginationState, PaginationMeta } from './paginationMeta';\r\nimport { paginationReducer } from './paginationReducer';\r\n\r\ntype UsePaginationConfig = {\r\n totalItems?: number;\r\n initialPage?: number;\r\n initialPageSize?: number;\r\n};\r\n\r\nexport type PaginationActions = {\r\n setPage: (page: number) => void;\r\n setNextPage: () => void;\r\n setPreviousPage: () => void;\r\n setPageSize: (pageSize: number, nextPage?: number) => void;\r\n setFirstPage: () => void;\r\n setLastPage: () => void;\r\n};\r\n\r\nexport type UsePaginationType = PaginationState & PaginationMeta & PaginationActions;\r\n\r\nfunction usePagination(\r\n { totalItems = 0, initialPage = 0, initialPageSize = 0 }: UsePaginationConfig = {},\r\n onSetTableInfoChange?: Dispatch>\r\n): UsePaginationType {\r\n const initialState = {\r\n totalItems,\r\n pageSize: initialPageSize,\r\n currentPage: initialPage,\r\n };\r\n\r\n const [paginationState, dispatch] = useReducer(paginationReducer, initialState);\r\n const initialMountRef = useRef(true);\r\n\r\n const totalItemsRef = useRef(totalItems);\r\n totalItemsRef.current = totalItems;\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (typeof totalItemsRef.current !== 'number' || totalItems === totalItemsRef.current) {\r\n return;\r\n }\r\n\r\n dispatch({ type: 'SET_TOTALITEMS', totalItems: totalItemsRef.current });\r\n };\r\n }, [totalItems]);\r\n\r\n useEffect(() => {\r\n if (!initialMountRef.current) {\r\n if (onSetTableInfoChange) {\r\n onSetTableInfoChange((prev) => {\r\n const currentPage = paginationState.currentPage <= 0 ? 0 : paginationState.currentPage;\r\n if (\r\n prev.pageNumber - 1 !== currentPage ||\r\n prev.pageSize !== paginationState.pageSize /* && paginationState.pageSize <= totalItemsRef.current */\r\n ) {\r\n return { ...prev, pageNumber: currentPage + 1, pageSize: paginationState.pageSize };\r\n }\r\n\r\n return prev;\r\n });\r\n }\r\n } else {\r\n initialMountRef.current = false;\r\n }\r\n }, [paginationState.currentPage, paginationState.pageSize, onSetTableInfoChange]);\r\n\r\n const paginationMeta = useMemo(() => getPaginationMeta(paginationState), [paginationState]);\r\n\r\n const setPage = useCallback((page: number) => {\r\n dispatch({\r\n type: 'SET_PAGE',\r\n page,\r\n });\r\n }, []);\r\n\r\n const setNextPage = useCallback(() => {\r\n dispatch({ type: 'NEXT_PAGE' });\r\n }, []);\r\n const setPreviousPage = useCallback(() => {\r\n dispatch({ type: 'PREVIOUS_PAGE' });\r\n }, []);\r\n const setPageSize = useCallback(\r\n (pageSize: number, nextPage = 0) => {\r\n dispatch({ type: 'SET_PAGESIZE', pageSize, nextPage });\r\n },\r\n [totalItems]\r\n );\r\n\r\n const setFirstPage = useCallback(() => {\r\n setPage(0);\r\n }, [setPage]);\r\n\r\n const setLastPage = useCallback(() => {\r\n setPage(paginationMeta.totalPages);\r\n }, [setPage, paginationMeta.totalPages]);\r\n\r\n return {\r\n ...paginationState,\r\n ...paginationMeta,\r\n setPage,\r\n setNextPage,\r\n setPreviousPage,\r\n setPageSize,\r\n setFirstPage,\r\n setLastPage,\r\n };\r\n}\r\n\r\nexport default usePagination;\r\n","import { useMemo } from 'react';\r\nimport { SelectOption } from '../models/models.dl';\r\n\r\ninterface IProps {\r\n initialValues: Record;\r\n currentValues: Record;\r\n comparedFields?: Array;\r\n}\r\n\r\ninterface IHookReturnType {\r\n isModified: boolean;\r\n}\r\n\r\n// For select values to compare\r\n// Sometimes initial value is string but current value is an object with fields 'text' and 'id'\r\nconst getValue = (value: number | string | SelectOption) => {\r\n return (value as SelectOption)?.text || value;\r\n};\r\n\r\nexport const useIsFormModified = ({ initialValues, currentValues, comparedFields }: IProps): IHookReturnType => {\r\n // By default this hook compares all form values, but we can pass 'comparedFields' param to compare only fields we need\r\n const fields = useMemo(() => comparedFields || Object.keys(initialValues), [comparedFields, initialValues]);\r\n const isModified = useMemo(() => {\r\n if (initialValues && currentValues) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const key of fields) {\r\n const isDate = initialValues[key] instanceof Date && currentValues[key] instanceof Date;\r\n\r\n if (isDate && initialValues[key]?.toLocaleDateString() !== currentValues[key]?.toLocaleDateString()) {\r\n return true;\r\n }\r\n // Numeric initial values are numbers but form values are strings\r\n // eslint-disable-next-line eqeqeq\r\n if (!isDate && getValue(initialValues[key]) != getValue(currentValues[key])) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }, [initialValues, currentValues, fields]);\r\n\r\n return {\r\n isModified,\r\n };\r\n};\r\n","import { useCallback, useState, useEffect, useMemo } from 'react';\r\nimport { Selectors } from 'store/selectors';\r\nimport type { AppState } from 'store/interfaces';\r\nimport { IRowData } from 'components/Table/interfaces';\r\nimport { DropDownListChangeEvent } from 'components/vendor/SingleSelect';\r\nimport { useTableActiveState } from './useTableActiveState';\r\nimport * as Models from '../shared.models';\r\nimport Utils from '../shared.utils';\r\nimport { useAppSelector } from './storeHooks';\r\nimport { onlySumRows } from '../constants/onlySumRows';\r\n\r\ntype ReportTimeStamp = Models.BM.AvailableReport['reportTimeStamp'] | null;\r\nconst onlySumRowsDefault: any[] = [];\r\n\r\nexport const useSummaryReportViewState = (\r\n selectCurrentReportTimeStamp: (state: AppState) => ReportTimeStamp,\r\n services?: {\r\n exportData?: (reportUId: string, data: any) => Promise;\r\n fetchData?: (generatedReportUId: string, data: any) => Promise>;\r\n fetchChartData?: (generatedReportTimeStamp: string, filter: string) => Promise;\r\n fetchFilters?: (generatedReportTimeStamp: string) => Promise;\r\n },\r\n options?: {\r\n excludeSumRowsFromFilteredResult?: boolean;\r\n exportWithFilter?: boolean;\r\n fetchDataOnMount?: boolean;\r\n filterPlaceholder?: string;\r\n defaultFilter?: string | number;\r\n filterWithoutFetching?: ((data: T[], filter: Models.DM.SelectOption['id']) => T[]) | string;\r\n selectFiltersFromStore?: (state: AppState) => Models.DM.SelectOption[];\r\n selectDataFromStore?: (state: AppState) => T[];\r\n selectChartDataFromStore?: (state: AppState) => string[] | any[]; // TODO fix any type\r\n selectHeadersFromStore?: (state: AppState) => Models.BM.ColumnConfiguration[] | null;\r\n selectDataLoadingFromStore?: (state: AppState) => boolean;\r\n selectOnlySumRowsFromStore?: (state: AppState) => T[];\r\n }\r\n) => {\r\n const { fetchDataOnMount = true } = options || {};\r\n const filtersFromStore = useAppSelector(options?.selectFiltersFromStore || (() => null));\r\n const dataFromStore = useAppSelector(options?.selectDataFromStore || (() => null));\r\n const chartDataFromStore = useAppSelector(options?.selectChartDataFromStore || (() => null));\r\n const headersFromStore = useAppSelector(options?.selectHeadersFromStore || (() => null));\r\n const onlySumRowsFromStore = useAppSelector(options?.selectOnlySumRowsFromStore || (() => null));\r\n const onlySumRowsList = onlySumRowsFromStore || (onlySumRowsDefault as T[]);\r\n const loadingFromStore = useAppSelector(options?.selectDataLoadingFromStore || (() => false));\r\n const generatedReportTimeStamp = useAppSelector(Selectors.Reports.SummaryTotal.selectGeneratedReport);\r\n const currentReportTimeStamp = useAppSelector(selectCurrentReportTimeStamp);\r\n const [showSumsOnly, setShowSumsOnly] = useState(false);\r\n const [localFilters, setFilters] = useState(\r\n options?.filterPlaceholder ? [{ id: '', text: options.filterPlaceholder }] : []\r\n );\r\n const [filter, setFilter] = useState(options?.defaultFilter || '');\r\n const [filtersLoading, setFiltersLoading] = useState(false);\r\n const [localChartData, setChartData] = useState([]);\r\n const [chartDataLoading, setChartDataLoading] = useState(false);\r\n const useTableActiveStateProp = useMemo(\r\n () => ({\r\n exportData: services?.exportData,\r\n options: {\r\n fetchOnMount: fetchDataOnMount,\r\n },\r\n }),\r\n [fetchDataOnMount, services?.exportData]\r\n );\r\n const {\r\n data: localData,\r\n headers: localHeaders,\r\n // setDataAndHeaders,\r\n dataLoading: localDataLoading,\r\n // setDataLoading,\r\n exportData,\r\n dataExporting,\r\n resetTableAfterFileUploadedRef,\r\n } = useTableActiveState(useTableActiveStateProp);\r\n\r\n const handleExportData = useCallback(\r\n exportData(null, generatedReportTimeStamp, options?.exportWithFilter ? filter : undefined),\r\n [exportData, generatedReportTimeStamp, options?.exportWithFilter, filter]\r\n );\r\n\r\n const chartData = chartDataFromStore || localChartData;\r\n const data = dataFromStore || localData;\r\n const headers = headersFromStore || localHeaders;\r\n const filters = filtersFromStore || localFilters;\r\n const dataLoading = loadingFromStore || localDataLoading;\r\n\r\n const filtersDisabled =\r\n filtersLoading ||\r\n dataLoading ||\r\n !generatedReportTimeStamp ||\r\n // (filters.length === 1 && !filters[0].id) ||\r\n !filters.length;\r\n const toggleDisabled = !data?.length || dataLoading || !headers?.[0];\r\n const exportDisabled = !data?.length || dataLoading || dataExporting;\r\n\r\n const onToggleTableState = useCallback((value: boolean) => {\r\n resetTableAfterFileUploadedRef.current = true;\r\n setShowSumsOnly(value);\r\n }, []);\r\n\r\n const getData = useCallback(\r\n (currentTimeStamp: string, currentFilter: Models.DM.SelectOption['id'], withFilters = false): Promise => {\r\n if (withFilters && services?.fetchFilters) {\r\n setFiltersLoading(true);\r\n services\r\n .fetchFilters(currentTimeStamp)\r\n .then((responseData) => {\r\n const filterSetter = Utils.getCorrectTableFiltersFromResponse(responseData);\r\n setFilters(filterSetter);\r\n })\r\n .finally(() => {\r\n setFiltersLoading(false);\r\n });\r\n }\r\n if (services?.fetchChartData) {\r\n setChartDataLoading(true);\r\n services\r\n .fetchChartData(currentTimeStamp, currentFilter as string)\r\n .then((responseData) => {\r\n const chartDataSetter = Utils.getCorrectChartDataFromResponse(responseData);\r\n setChartData(chartDataSetter);\r\n })\r\n .finally(() => {\r\n setChartDataLoading(false);\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n []\r\n );\r\n\r\n const onChangeFilter = useCallback(\r\n ({ value }: DropDownListChangeEvent) => {\r\n if (options?.filterWithoutFetching || options?.exportWithFilter) setFilter(value?.id || '');\r\n if (!options?.filterWithoutFetching && generatedReportTimeStamp)\r\n getData(generatedReportTimeStamp as string, value?.id || '');\r\n },\r\n [generatedReportTimeStamp]\r\n );\r\n\r\n const onlySumRowList = useMemo(() => {\r\n if (!headers?.[0]?.name) return [];\r\n return onlySumRowsFromStore ? onlySumRowsList : Utils.getOnlySumRows(data, headers[0].name);\r\n }, [headers?.[0]?.name, onlySumRowsFromStore, onlySumRowsList, data]);\r\n\r\n const resultData = useMemo(() => {\r\n if (!data) return [];\r\n if (!data.length) return data;\r\n if (!!showSumsOnly && !!headers?.[0]?.name) return onlySumRowList;\r\n if (!!options?.filterWithoutFetching && !!filter) {\r\n let result = data;\r\n if (typeof options.filterWithoutFetching === 'function') result = options.filterWithoutFetching(result, filter);\r\n else\r\n result = result.filter(\r\n (row) => `${row[options.filterWithoutFetching as keyof typeof row]}`.indexOf(`${filter}`) !== -1\r\n );\r\n return options?.excludeSumRowsFromFilteredResult ? result : [...result, ...onlySumRowList];\r\n }\r\n return data;\r\n }, [\r\n showSumsOnly,\r\n onlySumRowList,\r\n data,\r\n headers?.[0]?.name,\r\n options?.filterWithoutFetching,\r\n filter,\r\n options?.excludeSumRowsFromFilteredResult,\r\n ]);\r\n\r\n useEffect(() => {\r\n if (\r\n fetchDataOnMount &&\r\n generatedReportTimeStamp &&\r\n (generatedReportTimeStamp !== currentReportTimeStamp || (!data?.length && !dataLoading))\r\n ) {\r\n getData(generatedReportTimeStamp, filter, true);\r\n }\r\n }, [generatedReportTimeStamp, fetchDataOnMount, currentReportTimeStamp]);\r\n\r\n const preventSortValues = useMemo(() => Object.values(onlySumRows), []);\r\n const filterOption = useMemo(() => filters.find(({ id }) => id === filter), [filters, filter]);\r\n\r\n return {\r\n data: resultData,\r\n fullData: data,\r\n headers,\r\n filter,\r\n filterOption,\r\n filters,\r\n exportData: handleExportData,\r\n onChangeFilter,\r\n onToggleTableState,\r\n tableStateToggled: showSumsOnly,\r\n filtersDisabled,\r\n toggleDisabled,\r\n exportDisabled,\r\n dataLoading,\r\n dataExporting,\r\n filtersLoading,\r\n resetTableStateRef: resetTableAfterFileUploadedRef,\r\n onlySumRows,\r\n chartData,\r\n chartDataLoading,\r\n preventSortValues,\r\n onlySumRowList,\r\n };\r\n};\r\n","import useOnClickOutside from './hooks/useOnClickOutside';\r\nimport useDebounce from './hooks/useDebounce';\r\nimport useTable from './hooks/useTable';\r\nimport usePagination from './hooks/usePagination/usePagination';\r\nimport useForfeitureRate from './hooks/useForfeitureRate';\r\nimport { useTableActiveState } from './hooks/useTableActiveState';\r\nimport { useModalActiveState } from './hooks/useModalActiveState';\r\nimport { useIsFormModified } from './hooks/useIsFormModified';\r\nimport { useSummaryReportViewState } from './hooks/useSummaryReportViewState';\r\nimport * as storeHooks from './hooks/storeHooks';\r\nimport { useDataState } from './hooks/useDataState';\r\nimport { useDefaultFilterOption } from './hooks/useDefaultFilterOption';\r\nimport { usePrivateLayout } from './hooks/usePrivateLayout';\r\nimport useIsMounted from './hooks/useIsMounted';\r\nimport { useFileUploadingState } from './hooks/useFileUploadingState';\r\nimport { useLogoutFromApp } from './hooks/useLogoutFromApp';\r\nimport { useUploaderWithDataConfirmation } from './hooks/useUploaderWithDataConfirmation';\r\nimport { useDownloadPrivateFile } from './hooks/useDownloadPrivateFile';\r\n\r\nconst CustomHooks = {\r\n useOnClickOutside,\r\n useDebounce,\r\n useTable,\r\n usePagination,\r\n useForfeitureRate,\r\n useTableActiveState,\r\n useModalActiveState,\r\n useIsFormModified,\r\n useSummaryReportViewState,\r\n storeHooks,\r\n useDataState,\r\n useDefaultFilterOption,\r\n usePrivateLayout,\r\n useIsMounted,\r\n useFileUploadingState,\r\n useLogoutFromApp,\r\n useUploaderWithDataConfirmation,\r\n useDownloadPrivateFile,\r\n};\r\n\r\nexport default CustomHooks;\r\n","import { useMemo } from 'react';\r\nimport { Selectors } from '../../store/selectors';\r\nimport type * as Models from '../shared.models';\r\nimport { useAppSelector } from './storeHooks';\r\n\r\nexport const useDefaultFilterOption = (\r\n filterName: 'date' | 'plan' | 'location'\r\n): Models.DM.SelectOption | undefined => {\r\n const filterIdx = filterName === 'date' ? 0 : filterName === 'plan' ? 1 : 2;\r\n const summaryTotalFilters = useAppSelector(Selectors.Reports.SummaryTotal.selectTableFilters);\r\n const summaryTotalFirstFilterId = summaryTotalFilters?.[1]?.id; // 1 because 0 is 'All grants'\r\n const defaultFilterOption: Models.DM.SelectOption | undefined = useMemo(() => {\r\n if (!summaryTotalFirstFilterId) return undefined;\r\n const grant = `${summaryTotalFirstFilterId}`; // format: date - plan - location\r\n const filter = grant.split(' - ')[filterIdx] || '';\r\n return !filter ? undefined : { id: filter, text: filter };\r\n }, [summaryTotalFirstFilterId, filterIdx]);\r\n return defaultFilterOption;\r\n};\r\n","import { useLocation } from 'react-router-dom';\r\nimport Services from 'shared/shared.services';\r\nimport { publicRoutes } from '../constants/routes';\r\n\r\nexport const usePrivateLayout = (): boolean => {\r\n const isAuthenticated = Services.BL.AuthorizationService.isAuthorized();\r\n const { pathname } = useLocation();\r\n return isAuthenticated && !publicRoutes.some((route) => route === pathname);\r\n};\r\n","import type { ReactNode } from 'react';\r\nimport type { OIDCUser } from 'OIDCAuth/models/OIDCUser';\r\nimport type { TFunction } from 'react-i18next';\r\nimport { ExtractedFields } from 'Pages/EmployeeContractDetails/constants';\r\nimport { UploadStatus } from 'Pages/ManageEmployeeContracts/CellsManageEmployeeContracts/CellUploadStatus/constatnts';\r\nimport type * as formatDate from '../utils/dateFormatter';\r\nimport type { SumRowKey, ExpenseReportStatus, FilesContainerName } from './enums.dl';\r\nimport type { ApiEntity, ReportsApiEntity } from './enums.bl';\r\nimport type { SelectOption, UserGetDto } from './models.dl';\r\n\r\nexport interface IPropsBase {\r\n className?: string;\r\n}\r\n\r\nexport interface ShareRegisterTableData {\r\n uid: string;\r\n id: string;\r\n optionholder: string;\r\n optionsGranted?: number | null;\r\n grantDate?: string | null;\r\n vestingSchedule: string | null;\r\n vestingCommencementDate?: string | null;\r\n employeeId: string | null;\r\n performanceHurdleId?: any | null;\r\n location: string | null;\r\n grantPlan: string | null;\r\n vestingFunction: string | null;\r\n forfeitureRate?: number | null;\r\n fileName: string | null;\r\n // leave: string | null;\r\n // department?: string | null;\r\n}\r\n\r\nexport interface IGrantRequestData\r\n extends Pick<\r\n Required,\r\n 'id' | 'optionholder' | 'vestingSchedule' | 'employeeId' | 'location' | 'grantPlan'\r\n > {\r\n uid?: string;\r\n performanceHurdleId: any;\r\n optionsGranted: number;\r\n grantDate: string;\r\n vestingCommencementDate: string;\r\n forfeitureRate: number;\r\n}\r\n\r\nexport interface INewGrantIdValidationResponse {\r\n isCustomVestingScheduleExists: boolean;\r\n scheduleName: string;\r\n}\r\n\r\nexport interface CustomVestingScheduleTableData {\r\n uid: string;\r\n grantId: string;\r\n scheduleName?: string | null;\r\n grantLife?: number | null;\r\n vestingCommencement?: string | null;\r\n grantDate?: string | null;\r\n totalOptions?: number | null;\r\n cliff?: string | null;\r\n cliffDuration?: string | null;\r\n cliffShares?: number | null;\r\n linearVesting?: string | null;\r\n vestingMonths?: string | null;\r\n vestingUnits: IScheduleGeneratedData[];\r\n leave?: string | null;\r\n leaveStart?: string | null;\r\n leaveEnd?: string | null;\r\n fileName?: string | null;\r\n}\r\n\r\nexport interface IScheduleDataForGenerating {\r\n vestingCommencement: string;\r\n cliff: string;\r\n cliffDuration: number;\r\n grantLife: number;\r\n linearVesting: string;\r\n cliffShares: number;\r\n totalOptions: number;\r\n}\r\n\r\nexport interface IScheduleGeneratedData {\r\n date: string;\r\n unit: number;\r\n}\r\n\r\nexport interface IScheduleData {\r\n uid?: string;\r\n grantId: string;\r\n scheduleName: string;\r\n vestingCommencement: Date | null;\r\n grantDate: Date | null;\r\n cliff: 'Yes' | 'No';\r\n cliffDuration: number;\r\n grantLife: number;\r\n linearVesting: 'Yes' | 'No';\r\n cliffShares: number;\r\n totalOptions: number;\r\n leave: 'Yes' | 'No';\r\n leaveStartDate: Date | null;\r\n leaveEndDate: Date | null;\r\n vestingData: IScheduleGeneratedData[];\r\n}\r\n\r\nexport interface EmployeeStatusTableData {\r\n id: string;\r\n optionHolder: string;\r\n terminationType?: string | null;\r\n terminationDate?: string | null;\r\n startDate?: string | null;\r\n location?: string | null;\r\n status?: string | null;\r\n entity?: string | null;\r\n departmentA?: string | null;\r\n departmentB?: string | null;\r\n departmentC?: string | null;\r\n leaveStartDate?: string | null;\r\n leaveEndDate?: string | null;\r\n fileName?: string | null;\r\n}\r\nexport interface IEmployeeStatusData\r\n extends Omit {\r\n terminationDate: Date | string | null;\r\n startDate: Date | string | null;\r\n leaveStartDate: Date | string | null;\r\n leaveEndDate: Date | string | null;\r\n isNew?: boolean;\r\n}\r\nexport interface ActivityLogsTableData {\r\n timeStamp: string;\r\n details: string;\r\n user: string;\r\n}\r\n\r\nexport interface GenerateExpensesTableData {\r\n reportTimeStamp: string;\r\n grantId: string;\r\n optionholder?: string | null;\r\n grantDate?: string | null;\r\n terminationDate?: string | null;\r\n terminationType?: string | null;\r\n location?: string | null;\r\n grantScheme?: string | null;\r\n vestingSchedule?: string | null;\r\n schemeValuation?: string | null;\r\n vestPercentage?: number | null;\r\n vestNo?: number | null;\r\n vestM?: number | null;\r\n optionValue?: number | null;\r\n vestingSatisfied?: string | null;\r\n status?: string | null;\r\n optionsGranted?: number | null;\r\n vestingCommencementDate?: string | null;\r\n months?: number | null;\r\n vestingFunction?: string | null;\r\n forfeitureRate?: number | null;\r\n department?: string | null;\r\n}\r\n\r\ntype ReportStatus = 'Vested' | 'Reverse';\r\n\r\ntype WithSumRowKey = SumRowKey | string | null;\r\n\r\nexport interface SummaryTotalTableData {\r\n grantDate?: WithSumRowKey;\r\n grantScheme?: `'---` | string | null;\r\n location?: `'---` | string | null;\r\n status?: `'---` | ReportStatus;\r\n}\r\nexport interface EmployeeViewTableData extends Omit {\r\n optionholder?: WithSumRowKey;\r\n grantDate?: string | null;\r\n schemeValuation?: string | null;\r\n department?: string | null;\r\n grantId?: string | null;\r\n}\r\n\r\nexport type GeographicalViewTableData = SummaryTotalTableData;\r\nexport interface DepartmentViewTableData extends SummaryTotalTableData {\r\n GrantPlan: string;\r\n}\r\nexport type ExpenseOutlookTableData = SummaryTotalTableData;\r\nexport type PlanViewTableData = SummaryTotalTableData;\r\nexport interface DataForFinalizationResponse {\r\n employeeStatusFiles: string | null;\r\n grantValuationsFiles: string | null;\r\n shareRegisterFiles: string | null;\r\n isProvisionCalculationComplete: boolean;\r\n listProvisionExpensesPerMonth: string | string[] | null;\r\n listTrueUpExpensesPerMonth: string | string[] | null;\r\n}\r\n\r\n// for Store\r\nexport interface DataForFinalization extends DataForFinalizationResponse {\r\n totalProvisions: number;\r\n totalTrueUp: number;\r\n}\r\n//\r\nexport interface DataForFinalizationRequest {\r\n reportUId: string;\r\n reportName: string;\r\n previousReportName: string;\r\n reportDate: string;\r\n shareRegisterFiles: string;\r\n employeeStatusFiles: string;\r\n grantValuationsFiles: string;\r\n selectedMonthExpense: number;\r\n ytdExpense: number;\r\n provisions: number;\r\n trueUpExpense: number;\r\n}\r\nexport interface IProvisionalExpenseTableDataResponse {\r\n reportUId: string;\r\n reportTimeStamp: string;\r\n provisionDate?: string | null;\r\n employeeId?: string | null;\r\n employeeName?: string | null;\r\n offerDate?: string | null;\r\n startDate?: string | null;\r\n options?: number | null;\r\n valuation?: number | null;\r\n vestingSchedule?: string | null;\r\n provisionExpenseValue?: number | null;\r\n inSchedule?: string | null;\r\n location?: string | null;\r\n plan?: string | null;\r\n fileName?: string | null;\r\n}\r\nexport interface IProvisionalExpenseChartDataResponse {\r\n reportUId: string;\r\n provisionExpenseValue?: number;\r\n provisionDate: string;\r\n location: string;\r\n plan: string;\r\n}\r\nexport interface IProvisionalExpenseFiltersResponse {\r\n dates: string[] | null;\r\n locations: string[] | null;\r\n schemes: string[] | null;\r\n}\r\nexport interface IProvisionalExpenseFiltersRequest {\r\n provisionDate?: string;\r\n location?: string;\r\n plan?: string;\r\n}\r\nexport type IProvisionalExpenseTableDataRequest = ITableDataInfoRequest & IProvisionalExpenseFiltersRequest;\r\nexport interface IProvisionalExpenseCalculationResult {\r\n hasInSchedule: boolean;\r\n hasInvalidProvisionDate: boolean;\r\n provisionDate: string;\r\n totalProvisionExpense: number;\r\n totalProvisionExpensePerLocation: string[] | null;\r\n}\r\n\r\nexport interface IExpensesJournalExportToExcelRequest extends IExpensesJournalSelectedOptions {\r\n exportData: string;\r\n}\r\n\r\nexport interface IExpensesJournalSelectedOptions extends IExpensesJournalFilters {\r\n reportUId: string;\r\n monthYear: Date;\r\n}\r\n\r\nexport interface IExpensesJournalFilters {\r\n locations: string[];\r\n schemes: string[];\r\n entities: string[];\r\n departmentAs: string[];\r\n departmentBs: string[];\r\n departmentCs: string[];\r\n}\r\n\r\nexport interface IDepartmentFilters {\r\n entities: string[];\r\n departmentAs: string[];\r\n departmentBs: string[];\r\n departmentCs: string[];\r\n}\r\n\r\nexport interface IExpensesJournalCalculatedData {\r\n currentMonthExpense: number;\r\n provisionCurrentMonth: number;\r\n provisionPreviousMonth: number;\r\n trueUpCurrentMonth: number;\r\n}\r\n\r\nexport interface AvailableReport {\r\n reportUId: string;\r\n reportTimeStamp: string;\r\n reportName: string; // formatted timestamp\r\n status: ExpenseReportStatus | null;\r\n}\r\n\r\nexport interface ICalculationDate extends SelectOption {\r\n id: string;\r\n status: AvailableReport['status'];\r\n}\r\n\r\nexport interface GrantValuationTableData {\r\n plan: string;\r\n fileName?: string | null;\r\n}\r\n\r\nexport interface WithHeaderTableResponseAndTotal {\r\n tableData: {\r\n data: T[];\r\n header?: ColumnConfiguration[];\r\n };\r\n totalCount: number;\r\n}\r\n\r\nexport interface WithHeaderTableResponse {\r\n data: T[];\r\n header?: ColumnConfiguration[];\r\n}\r\n\r\nexport interface ITableDataInfoRequest {\r\n searchBy: string;\r\n orderBy: string;\r\n asc: boolean;\r\n pageNumber: number;\r\n pageSize: number;\r\n}\r\n\r\nexport interface ITableDataInfo {\r\n SearchBy: string;\r\n OrderBy: string;\r\n Asc: boolean;\r\n PageNumber: number;\r\n ItemsPerPageCount: number;\r\n TotalCount: number;\r\n}\r\n\r\nexport interface ColumnConfiguration {\r\n name: keyof T;\r\n title: string;\r\n sortable?: boolean | null;\r\n sortDir?: string | null;\r\n format?: string | null;\r\n formatMask?: string | null;\r\n cls?: string | null;\r\n clsColumn?: string | null;\r\n size?: number | null;\r\n show?: boolean | null;\r\n isLink?: boolean;\r\n isColumnTitleLink?: boolean;\r\n template?: string | null;\r\n thousandSeparator?: string | null;\r\n decimalSeparator?: string | null;\r\n renderCell?: (row: T, t: TFunction) => ReactNode;\r\n dateFormat?: formatDate.DateFormat;\r\n}\r\n\r\nexport type ResponseTableDataType = WithHeaderTableResponse | T[] | null;\r\n\r\nexport interface PaginatedResponseTableDataType {\r\n tableData: ResponseTableDataType;\r\n totalCount: number;\r\n}\r\nexport interface UserProfile {\r\n user: UserGetDto | null;\r\n tokenObj: OIDCUser | null;\r\n}\r\nexport interface IValidator {\r\n validate(value: any): ValidationData;\r\n}\r\n\r\nexport class ValidationData {\r\n constructor(public errorText: Array = [], public isValid: boolean = false) {}\r\n}\r\nexport interface FormControl {\r\n value: string;\r\n errorText: string[];\r\n isValid: boolean;\r\n isTouched: boolean;\r\n validators: IValidator[];\r\n}\r\n\r\nexport type FormControls = {\r\n [fieldname: string]: FormControl;\r\n};\r\nexport interface IValuationObj {\r\n Year: string;\r\n Name: string;\r\n Date: Date;\r\n Valuation: string;\r\n Valuations: string;\r\n}\r\n\r\nexport interface IPerformanceVestingCondition {\r\n hurdleFrom: string;\r\n hurdleTo: string;\r\n vestingFrom: string;\r\n vestingTo: string;\r\n}\r\n\r\nexport interface IPerformanceSubHurdle {\r\n shUid: string;\r\n subHurdleName: string;\r\n weightage: string;\r\n unit: string;\r\n performanceSubHurdleVesting: IPerformanceVestingCondition[];\r\n}\r\n\r\nexport interface IPerformanceHurdle {\r\n uid: string;\r\n performanceHurdleId: string;\r\n performanceSubHurdle: IPerformanceSubHurdle[];\r\n}\r\nexport interface IUpdatePerformanceHurdleEstimate {\r\n performanceHurdleId: string | undefined;\r\n performanceSubHurdle: IperformanceHurdleEstimation[];\r\n}\r\nexport interface IperformanceHurdleEstimation {\r\n subHurdleName: string;\r\n unit: string;\r\n estimate: IPerformanceHurdleEstimate[];\r\n}\r\nexport interface IPerformanceHurdleEstimate {\r\n dateOfEstimate: string | null | Date;\r\n estimateValue: number;\r\n isFinalized: boolean;\r\n}\r\nexport interface IOldHeaderData {\r\n year: number;\r\n name: string;\r\n}\r\nexport interface INewHeaderResultData extends IOldHeaderData {\r\n previousYear: number;\r\n previousName: string;\r\n}\r\n\r\nexport interface ICalculateValuation {\r\n SharePrice: string;\r\n MaturityTime: string;\r\n ExercisePrice: string;\r\n RiskFreeRate: string;\r\n Volatility: string;\r\n DividendYield: string;\r\n}\r\n\r\nexport interface IGrantValuationData {\r\n scheme: string;\r\n valuations: string;\r\n isNew: boolean;\r\n}\r\n\r\nexport interface ICalculateValuationData {\r\n sharePrice: number;\r\n timeToMaturity: number;\r\n exercisePrice: number;\r\n riskFreeRate: number;\r\n volatility: number;\r\n dividendYield: number;\r\n}\r\n\r\nexport interface ITrueUpCalculationRequest {\r\n originalReportUId: string;\r\n updatedReportUId: string;\r\n trueUpStartDate: string;\r\n trueUpEndDate: string;\r\n reportUId: string;\r\n}\r\n\r\nexport interface ITrueUpCalculationResponse {\r\n success: boolean;\r\n}\r\n\r\nexport interface ITrueUpInfoResponse {\r\n employeesInReport1NotIn2: string;\r\n employeesInReport2NotIn1: string;\r\n grantsInReport1NotIn2: string;\r\n grantsInReport2NotIn1: string;\r\n locations: string[];\r\n newReportUID: string;\r\n previousReportUID: string;\r\n reportStartDate: string;\r\n reportEndDate: string;\r\n schemes: string[];\r\n success: boolean;\r\n trueUpExpense: number;\r\n}\r\n\r\nexport interface TrueUpReportTableData {\r\n grantDate?: string | null;\r\n grantPlan?: string | null;\r\n location?: string | null;\r\n status?: string | null;\r\n}\r\n\r\nexport interface ITrueUpExportRequest {\r\n reportUId: string;\r\n location: string;\r\n grantPlan: string;\r\n}\r\n\r\nexport interface ITrueUpFilterProps {\r\n location: string;\r\n plan: string;\r\n}\r\n\r\nexport interface ITrueUpTableRequest extends ITrueUpFilterProps, ITableDataInfoRequest {\r\n reportUId: string;\r\n}\r\n\r\nexport interface IExpensesCalculationValidationResponse {\r\n currentReportCountExceeded: boolean;\r\n grantValuationCount: number;\r\n schemesNotInValuationTable: string[];\r\n unspecifiedPerformanceHurdleCount: number;\r\n unspecifiedVestingFunctionCount: number;\r\n validVestingFunctionCount: number;\r\n}\r\n\r\nexport interface IExpensesTableDataResponse {\r\n header: unknown[];\r\n data: GenerateExpensesTableData[];\r\n}\r\n\r\nexport interface IUploadFileDbResultResponse {\r\n rowsAdded: number;\r\n rowsAddedOrUpdated: number;\r\n rowsDeleted: number;\r\n rowsUpdated: number;\r\n}\r\n\r\nexport type IExpensesSaveResponse = IUploadFileDbResultResponse;\r\n\r\n/**\r\n * `dbResultRelatedKey` - Starts with dbResult and ends with 'RelatedKey' (can be ShareRegister or ValuationRef as example).\r\n * Uses as placeholder key for real related key which starts with dbResult\r\n * */\r\nexport interface IUploadFileResponseWithError {\r\n dbResult: IUploadFileDbResultResponse;\r\n dbResultRelatedKey?: IUploadFileDbResultResponse;\r\n error?: string;\r\n}\r\n\r\nexport type IUploadFileResponse = IUploadFileDbResultResponse | IUploadFileResponseWithError | number;\r\n\r\nexport interface IExpensesSaveReportsResponse {\r\n CurrentReportCountExceeded: boolean;\r\n dbResult: IExpensesSaveResponse;\r\n TimeStamp: string;\r\n}\r\n\r\nexport interface IPaginatedTableResponseWithHeaders {\r\n tableData: { data: T[]; header: ColumnConfiguration[] };\r\n totalCount: number;\r\n}\r\n\r\nexport interface IPaginatedTableResponse {\r\n tableData: T[];\r\n totalCount: number;\r\n}\r\n\r\nexport interface IExportSummaryReportRequest {\r\n selectedMonthExpense: number;\r\n ytdExpense: number;\r\n ytdExpenseName: string;\r\n provisions: number;\r\n currencySymbol: string;\r\n}\r\n\r\n/**\r\n * `month` - integer, from 1 to {@link IGenericVestingScheduleResponseData.months months}\r\n *\r\n * `unit` - positive, can be decimal\r\n */\r\nexport interface IGenericVestingScheduleResponseUnit {\r\n month: number;\r\n unit: number;\r\n}\r\n\r\nexport interface IGenericVestingScheduleResponseData {\r\n uid: string;\r\n scheduleName: string;\r\n months: number;\r\n genericVestingScheduleUnits: IGenericVestingScheduleResponseUnit[];\r\n}\r\n\r\nexport interface IGenericVestingScheduleRequestData extends Omit {\r\n uid: string | null;\r\n previousScheduleName: string | null;\r\n}\r\n\r\nexport interface IGenericVestingScheduleDeleteOrUpdateValidationResponseData {\r\n assigned: boolean;\r\n}\r\n\r\nexport type CurrentEnv = 'DEV' | 'QA' | 'LOAD' | 'STAGE' | 'PROD';\r\n\r\nexport type IFileUploadingApiEntity =\r\n | 'ShareRegister'\r\n | 'employee'\r\n | 'valuation'\r\n | 'provisionExpense'\r\n | 'CustomVestingSchedule';\r\n\r\nexport type IExportingDataApiEntity = ApiEntity | `${ApiEntity.Reports}/${ReportsApiEntity}`;\r\n\r\nexport type IFileUploadingView =\r\n | 'shareRegister'\r\n | 'grandValuation'\r\n | 'employeeStatus'\r\n | 'provisionExpense'\r\n | 'customVesting';\r\n\r\nexport interface IBeforeUploadWarningModalData {\r\n visible: boolean;\r\n title: string;\r\n text: string;\r\n}\r\n\r\nexport interface IExportedAndPublicFilesRequestData extends ITableDataInfoRequest {\r\n containerNames: Array;\r\n}\r\nexport interface ExpenseReportProgressDataResponse {\r\n status: ExpenseReportStatus;\r\n createdDate: string;\r\n percent: number;\r\n firstName: string;\r\n lastName: string;\r\n calculationNotRun: boolean;\r\n}\r\nexport interface PerformanceHurdlesTableData {\r\n performanceHurdleId: string;\r\n createdDate: string;\r\n subHurdleName: string;\r\n updatedBy: string;\r\n updatedDate: string;\r\n}\r\nexport interface IPerformanceHurdlesTableResponse {\r\n tableData: T[];\r\n totalCount: number;\r\n}\r\nexport interface IUpdateResultResponse {\r\n rowsAdded: number;\r\n rowsAddedOrUpdated: number;\r\n rowsDeleted: number;\r\n rowsUpdated: number;\r\n}\r\n\r\nexport interface ManageEmployeeContractsTableData {\r\n uid: string;\r\n uploadDate: string;\r\n uploadStatus: UploadStatus;\r\n location: string;\r\n grantPlan: string;\r\n forfeitureRate: number;\r\n fileName: string;\r\n}\r\n\r\nexport interface UploadManageEmployeeContracts {\r\n forfeitureRate: number;\r\n grantPlan: string;\r\n location: string;\r\n filesCount: number;\r\n}\r\n\r\nexport interface InputsEmployeeContracts {\r\n grantPlan: string;\r\n location: string;\r\n}\r\n\r\nexport interface EmployeeContractDetailsSave {\r\n uid: string;\r\n optionHolder: string;\r\n optionsGranted: string;\r\n grantDate: string;\r\n vestingCommencementDate: string;\r\n vestingPeriodEndDate: string;\r\n vestingSchedule: number;\r\n employeeId: string;\r\n forfeitureRate: number;\r\n grantPlan: string;\r\n location: string;\r\n fileName: string;\r\n}\r\n\r\nexport interface EmployeeContractDetailsData {\r\n forfeitureRate: number;\r\n grantPlan: string;\r\n location: string;\r\n uid: string;\r\n fileName: string;\r\n extractedFileData: ExtractedFileData[];\r\n}\r\n\r\ninterface ExtractedFileData {\r\n entityName: ExtractedFields;\r\n entityValue: string;\r\n pageNumber: number;\r\n lineNumber: number;\r\n boundingBox: number[];\r\n pageWidth: number;\r\n pageHeight: number;\r\n}\r\n","export const numbers = /[0-9]/;\r\n\r\nexport const floatNumbers = /[0-9.]/;\r\n\r\n// eslint-disable-next-line\r\nexport const specialCharacters = /^[\\s*a-zA-Z0-9?!@#$%&{|})([\\]\\/+=':;.,_-]+$/;\r\n\r\nexport const numbersCharacters = /^[a-zA-Z0-9]+$/;\r\n\r\nexport const alphaNumeric = /^[a-zA-Z0-9 ]+$/;\r\n\r\nexport const performanceHurdle = /^[a-zA-Z0-9\\s;:-]*$/;\r\n\r\n// 12.3 or 12\r\nexport const floatNumberWithDot = /^\\d+(\\.\\d+)?$/;\r\n\r\n// 'DD/MM/YYYY' date format\r\nexport const dateFormat = /^\\d{2}[/]\\d{2}[/]\\d{4}$/;\r\n\r\n// 12\r\nexport const integerNumbers = /^\\d+$/;\r\n","import {\r\n numbers,\r\n floatNumbers,\r\n specialCharacters,\r\n numbersCharacters,\r\n alphaNumeric,\r\n performanceHurdle,\r\n floatNumberWithDot,\r\n dateFormat,\r\n integerNumbers,\r\n} from './regExps/regExps';\r\n\r\nconst RegExps = {\r\n numbers,\r\n floatNumbers,\r\n specialCharacters,\r\n numbersCharacters,\r\n alphaNumeric,\r\n performanceHurdle,\r\n floatNumberWithDot,\r\n dateFormat,\r\n integerNumbers,\r\n};\r\n\r\nexport default RegExps;\r\n","import history from 'appHistory';\r\nimport UserDataService from '../dl/user.data.service';\r\nimport { ROUTES, publicRoutes } from '../../constants/routes';\r\nimport AuthenticationService from './authentication.service';\r\nimport * as Models from '../../shared.models';\r\nimport { UserProfile } from '../../models/models.bl';\r\nimport { getFromLocalStorage, removeFromLocalStorage } from '../../utils/localStorage';\r\nimport { OIDCUser } from '../../../OIDCAuth/models/OIDCUser';\r\n\r\nimport { store } from '../../../store';\r\nimport { setUser } from '../../../store/user/actions';\r\n\r\nexport default class AuthorizationService {\r\n static setUser(user: Models.DM.UserGetDto): void {\r\n store.dispatch(setUser(user));\r\n }\r\n\r\n static getUser(user?: Models.DM.UserGetDto): Models.DM.UserGetDto | null {\r\n return user || store.getState().currentUser.user || getFromLocalStorage('currentUser')?.user || null;\r\n }\r\n\r\n static isPreparer = (user?: Models.DM.UserGetDto): boolean => {\r\n const currentUser = this.getUser(user);\r\n return !!currentUser && currentUser.role === Models.DE.UserRole.Preparer;\r\n };\r\n\r\n static isReviewer = (user?: Models.DM.UserGetDto): boolean => {\r\n const currentUser = this.getUser(user);\r\n return !!currentUser && currentUser.role === Models.DE.UserRole.Reviewer;\r\n };\r\n\r\n static isAuthorized(user?: Models.DM.UserGetDto): boolean {\r\n const currentUser: Models.DM.UserGetDto = user || (store.getState().currentUser.user as Models.DM.UserGetDto);\r\n\r\n return !!currentUser;\r\n }\r\n\r\n static fetchUser = (): Promise => {\r\n return UserDataService.getUserProfile().then(this.onSuccessfulAuth).catch(this.onUnSuccessfulAuth);\r\n };\r\n\r\n static resolveToken = (tokenObj: OIDCUser): void => {\r\n const isRefreshedToken = getFromLocalStorage('isRefreshToken');\r\n\r\n removeFromLocalStorage('isRefreshToken');\r\n AuthenticationService.setToken(tokenObj);\r\n\r\n if (!isRefreshedToken || !this.isAuthorized()) {\r\n this.fetchUser();\r\n }\r\n };\r\n\r\n private static onSuccessfulAuth(user: Models.DM.UserGetDto): void {\r\n store.dispatch(setUser(user));\r\n const currentRoute = history.location.pathname as ROUTES;\r\n const whitlistedSuffixEmailAddress = '@deloitte.';\r\n if (user?.touSignDate != null || user.email.includes(whitlistedSuffixEmailAddress)) {\r\n if (publicRoutes.includes(currentRoute)) history.replace(ROUTES.home);\r\n } else {\r\n window.location.href = (window as any)?.ApiConfig?.ASSURANCE_TOU_URL + user?.countryCode;\r\n }\r\n }\r\n\r\n private static onUnSuccessfulAuth(): void {\r\n AuthenticationService.logOut();\r\n removeFromLocalStorage('isAuthenticationInProgress');\r\n history.replace(ROUTES.unauthorized);\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport { SelectedRowsType } from '../../../components/Table/interfaces';\r\nimport Configs from '../../shared.configs';\r\nimport * as Models from '../../shared.models';\r\nimport ApiUrlsService from './api-urls.service';\r\nimport { getParsedResponseData } from './helpers';\r\n\r\nconst defaultHeaders = Configs.Grid.GridColumnConfig.GrantValuationConfig.reduce((acc, item) => {\r\n acc[item.name.toLowerCase() as keyof Models.BM.GrantValuationTableData] = true;\r\n return acc;\r\n}, {} as Record);\r\n\r\nexport default class GrantValuation {\r\n static async getGrantValuationTableList(): Promise<\r\n Models.BM.ResponseTableDataType\r\n > {\r\n return axios\r\n .get | null>(\r\n ApiUrlsService.getGrantValuationTableList()\r\n )\r\n .then(({ data }) => {\r\n // add edit possibility for custom column headers\r\n if (Array.isArray(data?.header) && data?.header.length) {\r\n data.header.forEach((header) => {\r\n if (!defaultHeaders[header.name.toLowerCase() as keyof typeof defaultHeaders]) {\r\n header.isColumnTitleLink = true;\r\n }\r\n });\r\n }\r\n return getParsedResponseData(\r\n data,\r\n Configs.Grid.GridColumnConfig.GrantValuationConfig\r\n );\r\n })\r\n .catch(() => null);\r\n }\r\n\r\n static uploadGrantValuationTableFile(file: File): Promise {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n return axios.post(ApiUrlsService.uploadGrantValuationTableFile(), formData).then(({ data }) => data);\r\n }\r\n\r\n static deleteGrantValuationTableData(ids: SelectedRowsType): Promise {\r\n return axios.post(ApiUrlsService.deleteGrantValuationTableData(), { keys: ids }).then(({ data }) => data);\r\n }\r\n\r\n static checkIsColumnInUse(params: Models.BM.IOldHeaderData): Promise {\r\n return axios.get(ApiUrlsService.checkIsColumnInUse(), { params }).then(({ data }) => data);\r\n }\r\n\r\n static updateGrantValuationTableColumn(newData: Models.BM.INewHeaderResultData): Promise {\r\n return axios.post(ApiUrlsService.editColumn(), newData).then(({ data }) => data);\r\n }\r\n\r\n static deleteGrantValuationTableColumn(params: Models.BM.IOldHeaderData): Promise {\r\n return axios.delete(ApiUrlsService.deleteColumn(), { params }).then(({ data }) => data);\r\n }\r\n\r\n static exportGrantValuationTableData(): Promise {\r\n return axios.post(ApiUrlsService.exportGrantValuationTableData()).then(({ data }) => data);\r\n }\r\n\r\n static updateGrantValuationItem(newData: Models.BM.IGrantValuationData): Promise {\r\n return axios.post(ApiUrlsService.saveGrantValuationData(), newData).then(({ data }) => data);\r\n }\r\n\r\n static calculateGrantValuationValue(calculateData: Models.BM.ICalculateValuationData): Promise {\r\n return axios.post(ApiUrlsService.calculateGrantValuationValue(), calculateData).then(({ data = 0 }) => data);\r\n }\r\n}\r\n","import Expenses from './services/bl/expenses.services';\r\nimport ErrorLogDataService from './services/dl/error-log.data.service';\r\nimport UserDataService from './services/dl/user.data.service';\r\nimport ApiUrlsService from './services/bl/api-urls.service';\r\nimport LoaderService from './services/bl/loader.service';\r\nimport RouteService from './services/bl/route.service';\r\nimport ToasterService from './services/bl/toaster.service';\r\nimport ValidatorService from './services/bl/validation.service';\r\nimport AuthorizationService from './services/bl/authorization.service';\r\nimport AuthenticationService from './services/bl/authentication.service';\r\nimport CommonService from './services/bl/common.service';\r\nimport ConfigService from './services/bl/config.service';\r\nimport ShareRegister from './services/bl/shareRegister.service';\r\nimport CustomVestingSchedules from './services/bl/customVestingSchedules.service';\r\nimport GrantValuation from './services/bl/grantValuation.service';\r\nimport EmployeeStatus from './services/bl/employeeStatus.service';\r\nimport ActivityLogs from './services/bl/activityLogs.service';\r\nimport SBPExpensesReports from './services/bl/expensesReports.service';\r\nimport ProvisionalExpense from './services/bl/provisionalExpense.service';\r\nimport TrueUp from './services/bl/trueUp.service';\r\nimport ExpensesJournal from './services/bl/expensesJournal.service';\r\nimport Files from './services/bl/files.service';\r\nimport PerformanceHurdles from './services/bl/performanceHurdles.service';\r\nimport ManageEmployeeContractsService from './services/bl/manageEmployeeContracts.service';\r\n\r\nconst Services = {\r\n BL: {\r\n AuthenticationService,\r\n AuthorizationService,\r\n ApiUrlsService,\r\n LoaderService,\r\n RouteService,\r\n ToasterService,\r\n ValidatorService,\r\n CommonService,\r\n ConfigService,\r\n ShareRegister,\r\n CustomVestingSchedules,\r\n GrantValuation,\r\n EmployeeStatus,\r\n ActivityLogs,\r\n SBPExpensesReports,\r\n Expenses,\r\n ProvisionalExpense,\r\n TrueUp,\r\n ExpensesJournal,\r\n Files,\r\n PerformanceHurdles,\r\n ManageEmployeeContractsService,\r\n },\r\n DL: {\r\n ErrorLogDataService,\r\n UserDataService,\r\n },\r\n};\r\n\r\nexport default Services;\r\n","import { ROUTES } from 'shared/constants/routes';\r\nimport { store } from 'store';\r\nimport { setRedirectTo } from 'store/redirect/actions';\r\nimport { OIDCROUTES } from 'OIDCAuth/Routing/routes';\r\n\r\nexport default class RouteService {\r\n static get loginRoute(): string {\r\n return OIDCROUTES.login;\r\n }\r\n\r\n static get landingPageRoute(): string {\r\n return ROUTES.landing;\r\n }\r\n\r\n static get unAuthorizedPage(): string {\r\n return ROUTES.unauthorized;\r\n }\r\n\r\n static setRoute(route: ROUTES): void {\r\n store.dispatch(setRedirectTo(route));\r\n }\r\n}\r\n","import type * as Interfaces from './interfaces';\r\nimport { Types } from './types';\r\n\r\nexport const setRedirectTo = (route: Interfaces.StoreType) =>\r\n ({\r\n type: Types.SET_REDIRECT_TO,\r\n payload: route,\r\n } as const);\r\n","import * as Models from '../../shared.models';\r\n\r\nexport default class ValidatorService {\r\n static validateField(formControl: Models.BM.FormControl, fieldName: string, value: any): Models.BM.ValidationData {\r\n const vData: Models.BM.ValidationData = new Models.BM.ValidationData();\r\n vData.isValid = true;\r\n\r\n if (!formControl) {\r\n return vData;\r\n }\r\n\r\n if (formControl.validators) {\r\n formControl.validators.forEach((validator: Models.BM.IValidator) => {\r\n const v: Models.BM.ValidationData = validator.validate(value);\r\n\r\n if (!v.isValid) {\r\n vData.isValid = false;\r\n vData.errorText = vData.errorText.concat(v.errorText);\r\n }\r\n });\r\n }\r\n\r\n return vData;\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport { ITableDataInfoRequest } from 'shared/models/models.bl';\r\nimport { SelectedRowsType } from '../../../components/Table/interfaces';\r\nimport * as Models from '../../shared.models';\r\nimport ApiUrlsService from './api-urls.service';\r\nimport { getParsedResponseData } from './helpers';\r\nimport Configs from '../../shared.configs';\r\n\r\nexport default class EmployeeStatus {\r\n static getEmployeeStatusTableList(): Promise> {\r\n return axios\r\n .get(ApiUrlsService.getEmployeeStatusTableList())\r\n .then(({ data }) =>\r\n getParsedResponseData(\r\n data,\r\n Configs.Grid.GridColumnConfig.EmployeeStatusConfig,\r\n false,\r\n false\r\n )\r\n )\r\n .catch(() => null);\r\n }\r\n\r\n static uploadEmployeeStatusTableFile(file: File): Promise {\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n return axios.post(ApiUrlsService.uploadEmployeeStatusTableFile(), formData).then(({ data }) => data);\r\n }\r\n\r\n static getEmployeeStatusTableData(data: ITableDataInfoRequest): Promise {\r\n return axios.post(ApiUrlsService.getEmployeeStatusTableData(), data).catch(() => null);\r\n }\r\n\r\n static deleteEmployeeStatusTableData(ids: SelectedRowsType): Promise {\r\n return axios.post(ApiUrlsService.deleteEmployeeStatusTableData(), ids).then(({ data }) => data);\r\n }\r\n\r\n static exportEmployeeStatusTableData(): Promise {\r\n return axios.post(ApiUrlsService.exportEmployeeStatusTableData()).then(({ data }) => data);\r\n }\r\n\r\n static updateEmployeeStatusItem(data: Models.BM.IEmployeeStatusData): Promise {\r\n return axios.post(ApiUrlsService.saveEmployeeStatusData(), data).then((response) => response);\r\n }\r\n}\r\n","import axios, { AxiosResponse } from 'axios';\r\nimport * as Models from '../../shared.models';\r\nimport ApiUrlsService from './api-urls.service';\r\nimport { getParsedResponseData } from './helpers';\r\nimport Configs from '../../shared.configs';\r\n\r\nexport default class ActivityLogs {\r\n static getActivityLogsTableList(): Promise> {\r\n return axios\r\n .get(ApiUrlsService.getActivityLogsTableList())\r\n .then(({ data }) =>\r\n getParsedResponseData(data, Configs.Grid.GridColumnConfig.ActivityLogsConfig)\r\n )\r\n .catch(() => null);\r\n }\r\n\r\n static getActivityLogsPaginatedData(\r\n data: Models.BM.ITableDataInfoRequest\r\n ): Promise>> {\r\n return axios.post(ApiUrlsService.getActivityLogsPaginatedData(), data).then((response) => {\r\n response.data.tableData = getParsedResponseData(\r\n response.data.tableData,\r\n Configs.Grid.GridColumnConfig.ActivityLogsConfig\r\n );\r\n return response;\r\n });\r\n }\r\n\r\n static exportActivityLogsTableData(): Promise {\r\n return axios.post(ApiUrlsService.exportActivityLogsTableData()).then(({ data }) => data);\r\n }\r\n}\r\n","import axios from 'axios';\r\n\r\nimport * as Models from '../../shared.models';\r\nimport {\r\n ITrueUpCalculationRequest,\r\n ITrueUpCalculationResponse,\r\n ITrueUpExportRequest,\r\n ITrueUpInfoResponse,\r\n WithHeaderTableResponse,\r\n ITrueUpFilterProps,\r\n ITrueUpTableRequest,\r\n} from '../../models/models.bl';\r\n\r\nimport ApiUrlsService from './api-urls.service';\r\n\r\nconst getRequestParams = (data?: Record): Record => {\r\n if (!data) return {} as Record;\r\n return Object.keys(data).reduce((acc, key) => {\r\n if (data[key] || data[key] === 0) {\r\n acc[key] = data[key];\r\n }\r\n return acc;\r\n }, {} as Record);\r\n};\r\n\r\nexport default class TrueUp {\r\n static trueUpStartCalculation(fieldValues: ITrueUpCalculationRequest): Promise {\r\n return axios.post(ApiUrlsService.trueUpStartCalculation(), fieldValues).then(({ data }) => data);\r\n }\r\n\r\n static getTrueUpInfoData(reportUId: string): Promise {\r\n return axios.post(ApiUrlsService.getTrueUpInfoData(), { reportUId }).then(({ data }) => data);\r\n }\r\n\r\n static getTrueUpTableData(reportUId: string, filters?: ITrueUpFilterProps): Promise> {\r\n return axios\r\n .get(ApiUrlsService.getTrueUpTableData(), { params: { reportUId, ...getRequestParams(filters) } })\r\n .then(({ data }) => data);\r\n }\r\n\r\n static getNewReportTrueUpTableData(\r\n request: ITrueUpTableRequest\r\n ): Promise> {\r\n return axios.post(ApiUrlsService.getNewReportTrueUpTableData(), request).then(({ data }) => data);\r\n }\r\n\r\n static getPreviousReportTrueUpTableData(\r\n request: ITrueUpTableRequest\r\n ): Promise> {\r\n return axios.post(ApiUrlsService.getPreviousReportTrueUpTableData(), request).then(({ data }) => data);\r\n }\r\n\r\n static deleteAllTrueUpData(timeStamp: string): Promise {\r\n return axios.delete(ApiUrlsService.deleteAllTrueUpData(timeStamp)).then(({ data }) => data);\r\n }\r\n\r\n static exportTrueUpTableData(body: ITrueUpExportRequest): Promise {\r\n return axios.post(ApiUrlsService.exportTrueUpTableData(), body);\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport { prepareDateForBE } from '../../utils/dateFormatter';\r\n\r\nimport * as Models from '../../shared.models';\r\nimport ApiUrlsService from './api-urls.service';\r\n\r\nexport default class ExpensesJournal {\r\n static getReportList(): Promise {\r\n return axios.get(ApiUrlsService.getJournalEntriesReportList()).then(({ data }) => data);\r\n }\r\n\r\n static getFilterOptionsList(reportUId: string): Promise {\r\n return axios.get(ApiUrlsService.getFilterOptionsList(), { params: { reportUId } }).then(({ data }) => data);\r\n }\r\n\r\n static calculateData(\r\n calculateOptions: Models.BM.IExpensesJournalSelectedOptions\r\n ): Promise {\r\n return axios\r\n .post(ApiUrlsService.calculateData(), {\r\n ...calculateOptions,\r\n monthYear: prepareDateForBE(calculateOptions.monthYear),\r\n })\r\n .then(({ data }) => data);\r\n }\r\n\r\n static exportReport(body: Models.BM.IExpensesJournalExportToExcelRequest): Promise {\r\n return axios\r\n .post(ApiUrlsService.exportJournalEntriesTableData(), {\r\n ...body,\r\n monthYear: prepareDateForBE(body.monthYear),\r\n })\r\n .then((data) => data);\r\n }\r\n}\r\n","import axios from 'axios';\r\nimport { ITableDataInfoRequest, IPerformanceHurdle, IUpdatePerformanceHurdleEstimate } from 'shared/models/models.bl';\r\nimport { SelectedRowsType } from 'components/Table/interfaces';\r\nimport * as Models from '../../shared.models';\r\nimport ApiUrlsService from './api-urls.service';\r\n\r\nexport default class PerformanceHurdles {\r\n // @TODO - updating model, end points, and implementing the methods\r\n static getPerformanceHurdlesTableList(data: ITableDataInfoRequest): Promise {\r\n return axios.post(ApiUrlsService.getPerformanceHurdlesTableList(), data).then((response) => response);\r\n }\r\n\r\n static getPerformanceHurdlesData(\r\n data: ITableDataInfoRequest\r\n ): Promise> {\r\n return axios.post(ApiUrlsService.getPerformanceHurdlesData(), data).catch(() => null);\r\n }\r\n\r\n static deletePerformanceHurdlesTableData(ids: SelectedRowsType): Promise {\r\n return axios.post(ApiUrlsService.deletePerformanceHurdleTableData(), ids).then(({ data }) => data);\r\n }\r\n\r\n // API call: saving performance hurdle data\r\n static addAndUpdatePerformanceHurdleData(data: IPerformanceHurdle): Promise {\r\n return axios[data.uid ? 'put' : 'post'](\r\n data.uid ? ApiUrlsService.updatePerformanceHurdleData() : ApiUrlsService.addPerformanceHurdleData(),\r\n data\r\n ).then((response) => response);\r\n }\r\n\r\n static addOrUpdateEstimate(data: IUpdatePerformanceHurdleEstimate): Promise {\r\n return axios.post(ApiUrlsService.addOrUpdateEstimate(), data).then((response) => response);\r\n }\r\n\r\n static getPerformanceHurdleById(\r\n performanceHurdleId: Models.BM.IPerformanceHurdle['performanceHurdleId']\r\n ): Promise {\r\n return axios\r\n .get(ApiUrlsService.getPerformanceHurdleDataById(), { params: { performanceHurdleId } })\r\n .then(({ data }) => data);\r\n }\r\n\r\n static getUpdatedEstimateById(\r\n performanceHurdleId: Models.BM.IUpdatePerformanceHurdleEstimate['performanceHurdleId']\r\n ): Promise {\r\n return axios.get(ApiUrlsService.getEstimateById(), { params: { performanceHurdleId } }).then(({ data }) => data);\r\n }\r\n\r\n static clearPerformanceHurdleEstimateById(\r\n performanceHurdleId: Models.BM.IPerformanceHurdle['performanceHurdleId']\r\n ): Promise {\r\n return axios\r\n .delete(ApiUrlsService.clearPerformanceHurdleEstimateDataById(performanceHurdleId))\r\n .then((response) => response.data)\r\n .catch(() => {});\r\n }\r\n}\r\n","import axios from 'axios';\r\n\r\nimport { ISelected } from 'components/MipTable/MipTable';\r\nimport ApiUrlsService from './api-urls.service';\r\nimport * as Models from '../../shared.models';\r\n\r\nexport default class ManageEmployeeContracts {\r\n static uploadManageEmployeeContractsFiles(\r\n files: File[],\r\n params: Models.BM.UploadManageEmployeeContracts\r\n ): Promise {\r\n const formData = new FormData();\r\n\r\n files.forEach((file) => formData.append('file', file));\r\n (Object.keys(params) as Array).forEach((key) =>\r\n // @ts-ignore\r\n formData.append(key, params[key])\r\n );\r\n\r\n return axios.post(ApiUrlsService.uploadManageEmployeeContractsFiles(), formData).then(({ data }) => data);\r\n }\r\n\r\n static deleteManageEmployeeContractsTableRows(selectedData: ISelected): Promise {\r\n return axios.post(ApiUrlsService.deleteManageEmployeeContractsTableRows(), selectedData).then(({ data }) => data);\r\n }\r\n\r\n static getManageEmployeeContractsTableData(\r\n data: Models.BM.ITableDataInfoRequest\r\n ): Promise> {\r\n return axios.post(ApiUrlsService.getManageEmployeeContractsTableData(), data).catch(() => null);\r\n }\r\n\r\n static getGrantPlans(): Promise {\r\n return axios.get(ApiUrlsService.getGrantPlans()).then(({ data }) => data);\r\n }\r\n\r\n static getManageEmployeeContractsQTY(): Promise {\r\n return axios.get(ApiUrlsService.getManageEmployeeContractsQTY()).then(({ data }) => data);\r\n }\r\n\r\n static getExtractedManageEmployeeContractData(uid: string): Promise {\r\n return axios.get(ApiUrlsService.getExtractedManageEmployeeContractData(uid)).then(({ data }) => data);\r\n }\r\n\r\n static saveManageEmployeeContractDetails(detailsData: Models.BM.EmployeeContractDetailsSave): Promise {\r\n return axios.post(ApiUrlsService.saveManageEmployeeContractDetails(), detailsData).then(({ data }) => data);\r\n }\r\n}\r\n","import axios, { AxiosPromise } from 'axios';\r\n\r\nimport ApiUrlsService from '../bl/api-urls.service';\r\n\r\nexport default class ErrorLogDataService {\r\n static logError(body: any): AxiosPromise {\r\n return axios.post(ApiUrlsService.logError(), { text: body });\r\n }\r\n}\r\n","import { SortDirectionType } from 'components/Table/interfaces';\r\n// import { checkIsDate } from './dateFormatter';\r\n\r\ntype ObjectType = { [key: string]: any };\r\ntype ValueType = string | number | null | undefined | ObjectType;\r\ntype FindFieldReturnValueType = string | undefined;\r\n\r\nconst collator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base', ignorePunctuation: true });\r\n\r\nconst findField = (a: ObjectType, b: ObjectType, type: string): FindFieldReturnValueType => {\r\n const getResult = (obj: ObjectType): FindFieldReturnValueType =>\r\n Object.keys(obj).find((key: string) => typeof obj[key] === type);\r\n return getResult(a) || getResult(b);\r\n};\r\n\r\nconst getCorrectValue = (value: ValueType): string | number | ObjectType => {\r\n let result = value === null || value === undefined ? '' : value;\r\n if (typeof result === 'string' && !!result) {\r\n result = result.trim();\r\n const tempNumber = +result.replace(/,/g, '.');\r\n if (!Number.isNaN(tempNumber)) {\r\n result = tempNumber;\r\n } else if (result) {\r\n /* if (checkIsDate(result)) {\r\n result = new Date(result).getTime();\r\n } else { */\r\n result = result.replace(/\\s+/g, ' ').toUpperCase();\r\n /* } */\r\n }\r\n }\r\n return result;\r\n};\r\n\r\nexport const simpleSort =\r\n (direction: SortDirectionType, searchDepth = 1) =>\r\n (a: ValueType, b: ValueType, currentDepth = 1): number => {\r\n let valueA = getCorrectValue(a);\r\n let valueB = getCorrectValue(b);\r\n\r\n if (typeof valueA === 'object' && typeof valueB === 'object') {\r\n if (currentDepth > searchDepth) return 0;\r\n const field = findField(valueA, valueB, 'number') || findField(valueA, valueB, 'string');\r\n if (field) {\r\n return simpleSort(direction, searchDepth + 1)(valueA[field], valueB[field]);\r\n }\r\n return 0;\r\n }\r\n\r\n const sortModifier = direction === 'asc' ? 1 : -1;\r\n\r\n if (typeof valueA === 'string' && typeof valueB === 'string') {\r\n return collator.compare(valueA, valueB) * sortModifier;\r\n }\r\n\r\n if (typeof valueA === 'number' && typeof valueB === 'string') {\r\n if (!valueB) valueB = 0;\r\n else return -1 * sortModifier;\r\n }\r\n if (typeof valueA === 'string' && typeof valueB === 'number') {\r\n if (!valueA) valueA = 0;\r\n else return 1 * sortModifier;\r\n }\r\n\r\n if (valueA > valueB) {\r\n return 1 * sortModifier;\r\n }\r\n if (valueA < valueB) {\r\n return -1 * sortModifier;\r\n }\r\n return 0;\r\n };\r\n","export const currencyFormatter = (number: number): string =>\r\n new Intl.NumberFormat('en-US', { style: 'currency', maximumFractionDigits: 2, currency: 'USD' }).format(number);\r\n","import * as Models from '../shared.models';\r\n\r\nexport const getSelectOptions = (optionValues: Models.DM.SelectOption['id'][]): Models.DM.SelectOption[] =>\r\n optionValues.reduce((acc, value) => {\r\n if (!!value || value === 0) {\r\n acc.push({\r\n id: value,\r\n text: `${value}`,\r\n });\r\n }\r\n return acc;\r\n }, [] as Models.DM.SelectOption[]);\r\n","import { checkIsMobileBrowser } from './utils/checkIsMobileDevice';\r\nimport { stopPropagation } from './utils/stopPropagation';\r\nimport { formatBytes } from './utils/formatBytes';\r\nimport { simpleSort } from './utils/simpleSort';\r\nimport * as formatDate from './utils/dateFormatter';\r\nimport { currencyFormatter } from './utils/currencyFormatter';\r\nimport { makeAdditionalClassNamesGenerator } from './utils/makeAdditionalClassNamesGenerator';\r\nimport {\r\n getCorrectTableDataFromResponse,\r\n getCorrectTableFiltersFromResponse,\r\n getCorrectChartDataFromResponse,\r\n} from './utils/getCorrectTableDataFromResponse';\r\nimport { getSelectOptions } from './utils/getSelectOptions';\r\nimport { getOnlySumRows } from './utils/getOnlySumRows';\r\nimport { parseErrorResponse } from './utils/parseErrorResponse';\r\nimport { isEmptyObject } from './utils/isEmptyObject';\r\n\r\nconst Utils = {\r\n checkIsMobileBrowser,\r\n stopPropagation,\r\n formatBytes,\r\n simpleSort,\r\n formatDate,\r\n makeAdditionalClassNamesGenerator,\r\n currencyFormatter,\r\n getSelectOptions,\r\n getCorrectTableDataFromResponse,\r\n getCorrectTableFiltersFromResponse,\r\n getCorrectChartDataFromResponse,\r\n getOnlySumRows,\r\n parseErrorResponse,\r\n isEmptyObject,\r\n};\r\n\r\nexport default Utils;\r\n","export const checkIsMobileBrowser = (): boolean => {\r\n let ua: any;\r\n if (typeof navigator !== 'undefined') {\r\n ua = navigator.userAgent;\r\n }\r\n if (ua && ua.headers && typeof ua.headers['user-agent'] === 'string') {\r\n ua = ua.headers['user-agent'];\r\n }\r\n if (typeof ua !== 'string') {\r\n return false;\r\n }\r\n\r\n const matchedUserAgent =\r\n ua.match(/Android/i) ||\r\n ua.match(/webOS/i) ||\r\n ua.match(/iPhone/i) ||\r\n ua.match(/iPad/i) ||\r\n ua.match(/iPod/i) ||\r\n ua.match(/BlackBerry/i) ||\r\n ua.match(/Windows Phone/i);\r\n\r\n return matchedUserAgent !== null;\r\n};\r\n","import { MouseEvent } from 'react';\r\n\r\nexport const stopPropagation = (e: MouseEvent) => {\r\n e.stopPropagation();\r\n};\r\n","interface IGetClassNameOption {\r\n check: any;\r\n classNameSuffix: string;\r\n isFirst?: boolean;\r\n}\r\nconst getClassName = (mainClassName: string, { check, classNameSuffix, isFirst }: IGetClassNameOption): string =>\r\n check ? `${isFirst ? '' : ' '}${mainClassName}__${classNameSuffix}` : '';\r\n\r\nexport const makeAdditionalClassNamesGenerator =\r\n (mainClassName: string) =>\r\n (options: IGetClassNameOption[]): string =>\r\n options.reduce((acc, item) => `${acc}${getClassName(mainClassName, item)}`, '');\r\n","import * as Models from '../shared.models';\r\nimport { getSelectOptions } from './getSelectOptions';\r\n\r\nexport const getCorrectTableDataFromResponse = (\r\n responseData: Models.BM.ResponseTableDataType\r\n): {\r\n getRows: (prev: T[]) => T[];\r\n getHeaders: (prev: Models.BM.ColumnConfiguration[] | null) => Models.BM.ColumnConfiguration[] | null;\r\n} => {\r\n return {\r\n getRows: (prev: T[]): T[] => {\r\n if (!responseData) return !prev?.length ? prev : [];\r\n let resultData = prev;\r\n if (Array.isArray(responseData)) resultData = responseData;\r\n else if (Array.isArray(responseData?.data)) resultData = responseData.data;\r\n return !resultData.length && !prev.length ? prev : resultData;\r\n },\r\n getHeaders: (prev: Models.BM.ColumnConfiguration[] | null): Models.BM.ColumnConfiguration[] | null => {\r\n const newHeaders = (responseData as Models.BM.WithHeaderTableResponse)?.header;\r\n if (!Array.isArray(newHeaders)) return null;\r\n return !prev?.length && !newHeaders.length ? prev : newHeaders;\r\n },\r\n };\r\n};\r\n\r\nexport const getCorrectTableFiltersFromResponse =\r\n (responseData?: string[] | null) =>\r\n (prev: Models.DM.SelectOption[]): Models.DM.SelectOption[] =>\r\n Array.isArray(responseData)\r\n ? [\r\n ...(prev?.[0]?.id === '' ? [prev[0]] : []),\r\n ...getSelectOptions(\r\n prev?.[0]?.id === '' ? responseData.filter((item) => item !== prev?.[0]?.text) : responseData\r\n ),\r\n ]\r\n : prev;\r\n\r\nexport const getCorrectChartDataFromResponse =\r\n (responseData?: T[] | null) =>\r\n (prev: T[]): T[] => {\r\n if (!Array.isArray(responseData)) return !prev.length ? prev : [];\r\n return !responseData.length && !prev.length ? prev : responseData;\r\n };\r\n","import { onlySumRows } from '../constants/onlySumRows';\r\n\r\nexport const getOnlySumRows = >(data: T[], dataKey: keyof T): T[] => {\r\n if (!data?.length) return data;\r\n let onlySumRowsLength = Object.keys(onlySumRows).length;\r\n const dataLength = data.length;\r\n let result: T[] = [];\r\n for (let i = dataLength - 1; i >= 0; i--) {\r\n if (onlySumRows[data[i][dataKey]]) {\r\n result = [data[i], ...result];\r\n onlySumRowsLength -= 1;\r\n } else break;\r\n if (!onlySumRowsLength) break;\r\n }\r\n return result;\r\n};\r\n","interface DateTimeFormatOptions {\r\n year?: 'numeric' | '2-digit';\r\n month?: 'numeric' | '2-digit' | 'long' | 'short' | 'narrow';\r\n day?: 'numeric' | '2-digit';\r\n weekday?: 'long' | 'short' | 'narrow';\r\n era?: 'long' | 'short' | 'narrow';\r\n hour?: 'numeric' | '2-digit';\r\n minute?: 'numeric' | '2-digit';\r\n second?: 'numeric' | '2-digit';\r\n timeZoneName?: 'long' | 'short';\r\n formatMatcher?: 'basic' | 'best fit';\r\n hour12?: boolean;\r\n timeZone?: 'UTC';\r\n}\r\n\r\nexport enum DateFormat {\r\n MonthYear = 'MonthYear',\r\n MonthDayYear = 'MonthDayYear',\r\n MonthDayYearHoursMinutes = 'MonthDayYearHoursMinutes',\r\n MonthDayYearHoursMinutes24 = 'MonthDayYearHoursMinutes24',\r\n MonthDayYearHoursMinutesSeconds = 'MonthDayYearHoursMinutesSeconds',\r\n MonthDayYearHoursMinutesSeconds24 = 'MonthDayYearHoursMinutesSeconds24',\r\n FullYearFullMonthDate = 'FullYearFullMonthDate',\r\n FullYearFullMonth = 'FullYearFullMonth',\r\n FullWeekdayFullMonthDayHoursMinutesSeconds = 'FullWeekdayFullMonthDayHoursMinutesSeconds',\r\n}\r\n\r\nexport enum Locales {\r\n EN = 'en-US',\r\n RU = 'ru-RU',\r\n EN_ZA = 'en-ZA',\r\n EN_AU = 'en-AU',\r\n}\r\n\r\nconst options: Record = {\r\n [DateFormat.MonthYear]: {\r\n year: 'numeric',\r\n month: 'short',\r\n },\r\n [DateFormat.MonthDayYear]: {\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric',\r\n },\r\n [DateFormat.MonthDayYearHoursMinutesSeconds]: {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n hour12: true,\r\n },\r\n [DateFormat.MonthDayYearHoursMinutesSeconds24]: {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n hour12: false,\r\n },\r\n [DateFormat.MonthDayYearHoursMinutes]: {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n },\r\n [DateFormat.MonthDayYearHoursMinutes24]: {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n hour12: false,\r\n },\r\n [DateFormat.FullYearFullMonthDate]: {\r\n year: 'numeric',\r\n month: 'long',\r\n day: '2-digit',\r\n },\r\n [DateFormat.FullYearFullMonth]: {\r\n year: 'numeric',\r\n month: 'long',\r\n },\r\n [DateFormat.FullWeekdayFullMonthDayHoursMinutesSeconds]: {\r\n year: 'numeric',\r\n month: 'long',\r\n day: '2-digit',\r\n weekday: 'long',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n hour12: true,\r\n },\r\n};\r\n\r\nexport const checkIsDate = (date: any): boolean => {\r\n if (!date) return false;\r\n /* let checker = date;\r\n if (typeof checker === 'string' && Number.isNaN(+checker) && !/\\d{2}:\\d{2}$/.test(checker)) {\r\n checker = checker.trim().replace(/\\.?\\d+$/, '');\r\n } */\r\n const dateObj = new Date(date);\r\n return dateObj instanceof Date && !Number.isNaN(dateObj.getTime());\r\n};\r\n\r\nexport const normalizeDateString = (\r\n date: string | Date | number\r\n): { isDate: boolean; value: string | Date | number } => {\r\n let result = date;\r\n // INFO: Sometimes BE return dateString in format day/month/year (checkIsDate(result) returns false)\r\n // but new Date() can convert it just if format will be month/day/year ((checkIsDate(result) returns true))\r\n if (typeof result === 'string' && /^\\d{2}\\/\\d{2}\\/\\d{4}$/.test(result) && !checkIsDate(result)) {\r\n const [day, month, year] = result.split('/');\r\n result = [month, day, year].join('/');\r\n }\r\n if (!checkIsDate(result)) return { isDate: false, value: date };\r\n return { isDate: true, value: result };\r\n};\r\n\r\nexport const dateFormatter = (\r\n date: string | Date | number,\r\n format: DateFormat,\r\n locale: Locales | Locales[] = Locales.EN\r\n): string => {\r\n const { isDate, value } = normalizeDateString(date);\r\n if (isDate) {\r\n return new Intl.DateTimeFormat(locale, options[format]).format(new Date(value));\r\n }\r\n return (date as string) ?? '';\r\n};\r\n\r\n/**\r\n * returns date in format 'YYYY-MM-DDT00:00:00'\r\n */\r\nexport const prepareDateForBE = (date: Date): string =>\r\n new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())).toISOString().slice(0, -5);\r\n","export const formatBytes = (bytes: number, decimals = 2): string => {\r\n if (!bytes) return '0 B';\r\n\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n\r\n return `${parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}`;\r\n};\r\n","export const isEmptyObject = (v: Record): boolean => !v || !Object.keys(v).length;\r\n","export function getFromLocalStorage(key: string): T | null {\r\n const localStorageValue = localStorage.getItem(key);\r\n return localStorageValue ? JSON.parse(localStorageValue) : null;\r\n}\r\n\r\nexport const removeFromLocalStorage = (key: string): void => localStorage.removeItem(key);\r\n\r\nexport const setToLocalStorage = (key: string, value: any): void => localStorage.setItem(key, JSON.stringify(value));\r\n","import { TFunction } from 'react-i18next';\r\n\r\ntype ResultType = string[];\r\n\r\nconst filterStrings = (item: any): boolean => !!item && typeof item === 'string';\r\n\r\nconst getErrorsFromString = (value: string, t: TFunction): ResultType => (value ? [t(value)] : []);\r\n\r\nconst getErrorsFromArray = (arr: any[], t: TFunction): ResultType => {\r\n return arr.reduce((acc: string[], val: any) => {\r\n if (filterStrings(val)) {\r\n acc.push(t(val));\r\n }\r\n\r\n return acc;\r\n }, []);\r\n};\r\n\r\nconst getErrorsFromObject = (obj: Record, t: TFunction): ResultType =>\r\n Object.entries(obj).reduce((acc, [key, value]) => {\r\n if (Array.isArray(value)) {\r\n const errorsStr: string = getErrorsFromArray(value, t).join(', ');\r\n if (errorsStr) {\r\n acc.push(`${key}: ${errorsStr}`);\r\n }\r\n }\r\n return acc;\r\n }, [] as ResultType);\r\n\r\nconst getErrors = (err: any, t: TFunction): ResultType => {\r\n if (typeof err === 'string') return getErrorsFromString(err, t);\r\n if (Array.isArray(err)) return getErrorsFromArray(err, t);\r\n if (typeof err === 'object') return getErrorsFromObject(err, t);\r\n return [];\r\n};\r\n\r\nexport const parseErrorResponse = (err: any, t: TFunction): string[] => {\r\n let errors: string[] = getErrors(\r\n err?.response?.data?.errors || err?.response?.data?.error || err?.response?.data || err,\r\n t\r\n );\r\n if (!errors.length) {\r\n errors = [err?.message ? t(err.message) : t('Common.SomethingWentWrong')];\r\n }\r\n return errors;\r\n};\r\n","import { ROUTES } from 'shared/constants/routes';\r\nimport { ModalStatus } from 'store/expenses/enums';\r\nimport { TFunction } from 'react-i18next';\r\nimport type { IValidationModalData } from './interfaces';\r\n\r\nconst validationModalDataByStatus: Record = {\r\n [ModalStatus.GRANT_VALUATION_EMPTY]: {\r\n status: ModalStatus.GRANT_VALUATION_EMPTY,\r\n title: 'GenerateSbpExpenses.GrantValuationEmptyModal.Title',\r\n description: 'GenerateSbpExpenses.GrantValuationEmptyModal.Description',\r\n link: ROUTES.grantValuation,\r\n },\r\n [ModalStatus.SHARE_REGISTER_EMPTY]: {\r\n status: ModalStatus.SHARE_REGISTER_EMPTY,\r\n title: 'GenerateSbpExpenses.ShareRegisterEmptyModal.Title',\r\n description: 'GenerateSbpExpenses.ShareRegisterEmptyModal.Description',\r\n link: ROUTES.shareRegister,\r\n },\r\n [ModalStatus.INVALID_SHARE_REGISTER]: {\r\n status: ModalStatus.INVALID_SHARE_REGISTER,\r\n title: 'GenerateSbpExpenses.InvalidShareRegisterModal.Title',\r\n description: 'GenerateSbpExpenses.InvalidShareRegisterModal.Description',\r\n link: ROUTES.grantValuation,\r\n },\r\n [ModalStatus.INVALID_PERFORMANCE_HURDLE_ID]: {\r\n status: ModalStatus.INVALID_PERFORMANCE_HURDLE_ID,\r\n title: '',\r\n description: 'GenerateSbpExpenses.InvalidPerformanceHurdleId.Description',\r\n link: ROUTES.shareRegister,\r\n },\r\n [ModalStatus.PROCEED]: {\r\n status: ModalStatus.PROCEED,\r\n title: 'GenerateSbpExpenses.ProceedModal.Title',\r\n description: 'GenerateSbpExpenses.ProceedModal.Description',\r\n link: ROUTES.shareRegister,\r\n },\r\n};\r\n\r\nexport const getValidationModalData = (status: ModalStatus, employeeQty = 0, t?: TFunction): IValidationModalData => {\r\n if (status === ModalStatus.PROCEED && employeeQty && t) {\r\n return {\r\n ...validationModalDataByStatus[status],\r\n description: t(validationModalDataByStatus[status].description, { employeeQty }),\r\n };\r\n }\r\n if (status === ModalStatus.INVALID_PERFORMANCE_HURDLE_ID && employeeQty && t) {\r\n return {\r\n ...validationModalDataByStatus[status],\r\n description: t(validationModalDataByStatus[status].description, { employeeQty }),\r\n };\r\n }\r\n return validationModalDataByStatus[status];\r\n};\r\n","import { ExpenseReportStatus } from 'shared/models/enums.dl';\r\nimport ExpensesService from 'shared/services/bl/expenses.services';\r\nimport ToasterService from 'shared/services/bl/toaster.service';\r\nimport { TFunction } from 'react-i18next';\r\nimport { ModalStatus } from './enums';\r\nimport { Types } from './types';\r\nimport { getValidationModalData } from './helpers';\r\nimport type * as Interfaces from './interfaces';\r\nimport type { AsyncThunkActionType } from '../interfaces';\r\n\r\nexport const actions = {\r\n setStatus: (payload: Interfaces.PayloadType['status']) =>\r\n ({\r\n type: Types.SET_STATUS,\r\n payload,\r\n } as const),\r\n setIsCancel: (payload: Interfaces.PayloadType['isCancel']) =>\r\n ({\r\n type: Types.SET_IS_CANCEL,\r\n payload,\r\n } as const),\r\n setReportProgressData: (payload: Interfaces.PayloadType['reportProgressData']) =>\r\n ({\r\n type: Types.SET_REPORT_PROGRESS_DATA,\r\n payload,\r\n } as const),\r\n\r\n setStatusLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.STATUS_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setValidationData: (payload: Interfaces.PayloadType['validationData']) =>\r\n ({\r\n type: Types.SET_VALIDATION_DATA,\r\n payload,\r\n } as const),\r\n\r\n resetStateData: () =>\r\n ({\r\n type: Types.RESET_STATE_DATA,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getExpenseStatus: (): AsyncThunkActionType => async (dispatch) => {\r\n try {\r\n dispatch(actions.setStatusLoading(true));\r\n const { status, ...reportProgress } = await ExpensesService.getCalculationStatus();\r\n const isCalculating = status === ExpenseReportStatus.InProgress || status === ExpenseReportStatus.New;\r\n\r\n dispatch(actions.setIsCancel(isCalculating));\r\n dispatch(actions.setStatus(status));\r\n\r\n if (isCalculating) {\r\n dispatch(actions.setReportProgressData(reportProgress));\r\n }\r\n } catch {\r\n dispatch(actions.setStatus(null));\r\n dispatch(actions.setIsCancel(false));\r\n }\r\n },\r\n\r\n validateCalculation:\r\n (t: TFunction): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n try {\r\n const { user } = getState().currentUser;\r\n const initialCalculationProgressData = {\r\n createdDate: new Date().toDateString(),\r\n percent: 0,\r\n firstName: user?.firstName || '',\r\n lastName: user?.lastName || '',\r\n };\r\n dispatch(actions.setStatus(ExpenseReportStatus.InProgress));\r\n dispatch(actions.setReportProgressData(user ? initialCalculationProgressData : null));\r\n const responseData = await ExpensesService.validateCalculation();\r\n let performanceHurdleIdFlag = true;\r\n\r\n if (responseData.currentReportCountExceeded) {\r\n const errorMsg = 'SnackBarMessage.ExceededMaximumCalculationLimit';\r\n ToasterService.error(errorMsg, true);\r\n throw new Error(errorMsg);\r\n }\r\n\r\n if (responseData.grantValuationCount === 0) {\r\n performanceHurdleIdFlag = false;\r\n dispatch(actions.setValidationData(getValidationModalData(ModalStatus.GRANT_VALUATION_EMPTY)));\r\n return;\r\n }\r\n\r\n if (responseData.validVestingFunctionCount === 0) {\r\n performanceHurdleIdFlag = false;\r\n dispatch(actions.setValidationData(getValidationModalData(ModalStatus.SHARE_REGISTER_EMPTY)));\r\n return;\r\n }\r\n\r\n if (responseData.schemesNotInValuationTable.length > 0) {\r\n performanceHurdleIdFlag = false;\r\n dispatch(actions.setValidationData(getValidationModalData(ModalStatus.INVALID_SHARE_REGISTER)));\r\n return;\r\n }\r\n if (responseData.unspecifiedPerformanceHurdleCount > 0 && performanceHurdleIdFlag) {\r\n dispatch(\r\n actions.setValidationData(\r\n getValidationModalData(\r\n ModalStatus.INVALID_PERFORMANCE_HURDLE_ID,\r\n responseData.unspecifiedPerformanceHurdleCount,\r\n t\r\n )\r\n )\r\n );\r\n return;\r\n }\r\n if (responseData.unspecifiedVestingFunctionCount > 0 && responseData.unspecifiedPerformanceHurdleCount === 0) {\r\n dispatch(\r\n actions.setValidationData(\r\n getValidationModalData(ModalStatus.PROCEED, responseData.unspecifiedVestingFunctionCount, t)\r\n )\r\n );\r\n return;\r\n }\r\n await dispatch(thunks.startCalculation());\r\n } catch {\r\n await dispatch(thunks.getExpenseStatus());\r\n }\r\n },\r\n\r\n startCalculation: (): AsyncThunkActionType => async (dispatch) => {\r\n try {\r\n dispatch(actions.setValidationData(null));\r\n dispatch(actions.setStatus(ExpenseReportStatus.InProgress));\r\n await ExpensesService.startCalculation();\r\n await dispatch(thunks.getExpenseStatus());\r\n } catch (error) {\r\n await dispatch(thunks.getExpenseStatus());\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import Services from '../../shared/shared.services';\r\nimport { Types } from './types';\r\nimport type { PayloadType } from './interfaces';\r\nimport type { AsyncThunkActionType } from '../interfaces';\r\n\r\nexport const actions = {\r\n setTemplateFilesFetching: (isFetching: PayloadType['isFetching']) =>\r\n ({\r\n type: Types.SET_TEMPLATE_FILES_FETCHING,\r\n payload: isFetching,\r\n } as const),\r\n\r\n setTemplateFiles: (files: PayloadType['templates']) =>\r\n ({\r\n type: Types.SET_TEMPLATE_FILES,\r\n payload: files,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getTemplateFiles: (): AsyncThunkActionType => async (dispatch, getState) => {\r\n const isFetching = getState().files.isTemplatesFetching;\r\n if (isFetching) return;\r\n try {\r\n dispatch(actions.setTemplateFilesFetching(true));\r\n const fileList = await Services.BL.Files.getTemplateFiles();\r\n dispatch(actions.setTemplateFiles(fileList));\r\n } catch {\r\n dispatch(actions.setTemplateFilesFetching(false));\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import { IFileUploadingApiEntity } from 'shared/models/models.bl';\r\nimport FileUploadingService from 'shared/services/bl/fileUploading.service';\r\nimport { FILE_UPLOADING_VIEW_MAP } from 'shared/constants/fileUploading';\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\nimport { AsyncThunkActionType } from '../interfaces';\r\n\r\nexport const actions = {\r\n setIsUploading: (payload: Interfaces.SetIsFileUploadingPayloadType) =>\r\n ({\r\n type: Types.SET_IS_UPLOADING,\r\n payload,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getUploadingState:\r\n (view: IFileUploadingApiEntity): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n const reportStatus = await FileUploadingService.getFileUploadingState(view);\r\n const isUploading = FileUploadingService.checkIsUploadingStatus(reportStatus);\r\n\r\n dispatch(actions.setIsUploading({ value: isUploading, view: FILE_UPLOADING_VIEW_MAP[view] }));\r\n return isUploading;\r\n } catch {\r\n dispatch(actions.setIsUploading({ value: false, view: FILE_UPLOADING_VIEW_MAP[view] }));\r\n return false;\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import axios from 'axios';\r\nimport LocalizationService from 'shared/services/bl/localization.service';\r\nimport { ILocale } from 'shared/models/models.dl';\r\nimport * as Models from 'shared/shared.models';\r\nimport { Types } from './types';\r\nimport { AsyncThunkActionType } from '../interfaces';\r\nimport { i18Service } from '../../localization';\r\nimport mockBundle from '../../localization/enFallback.json';\r\n\r\nexport const actions = {\r\n setIsLoadedLocales: (payload: boolean) =>\r\n ({\r\n type: Types.SET_IS_LOADED_LOCALES,\r\n payload,\r\n } as const),\r\n setIsErrorLocales: (payload: boolean) =>\r\n ({\r\n type: Types.SET_IS_ERROR_LOCALES,\r\n payload,\r\n } as const),\r\n setLocales: (payload: ILocale[]) =>\r\n ({\r\n type: Types.SET_LOCALES,\r\n payload,\r\n } as const),\r\n setIsLoadedLocaleKeys: (payload: boolean) =>\r\n ({\r\n type: Types.SET_IS_LOADED_LOCALE_KEYS,\r\n payload,\r\n } as const),\r\n setIsLoadingLocaleKeys: (payload: boolean) =>\r\n ({\r\n type: Types.SET_IS_LOADING_LOCALE_KEYS,\r\n payload,\r\n } as const),\r\n setIsErrorLocaleKeys: (payload: boolean) =>\r\n ({\r\n type: Types.SET_IS_ERROR_LOCALE_KEYS,\r\n payload,\r\n } as const),\r\n setIsErrorLoginLocaleKeys: (payload: boolean) =>\r\n ({\r\n type: Types.SET_IS_ERROR_LOGIN_LOCALE_KEYS,\r\n payload,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getLocales: (): AsyncThunkActionType => async (dispatch) => {\r\n try {\r\n const locales = await LocalizationService.getLocales();\r\n dispatch(actions.setLocales(locales));\r\n } catch {\r\n // If API returns an error that means that localization server is unavailable (contract with BE)\r\n // In this case 'loginPageKeyValues' API returns fallback locale keys (action getLoginLocaleKeys)\r\n dispatch(actions.setIsErrorLocales(true));\r\n } finally {\r\n dispatch(actions.setIsLoadedLocales(true));\r\n }\r\n },\r\n getLoginLocaleKeys:\r\n (id: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setIsLoadingLocaleKeys(true));\r\n const bundle = await LocalizationService.getLoginLocaleKeys(id);\r\n await i18Service.onChangeLocaleBundle(bundle, id);\r\n } catch {\r\n // If API fails mock locale keys should be shown on Login page\r\n await i18Service.onChangeLocaleBundle(mockBundle, id);\r\n dispatch(actions.setIsErrorLoginLocaleKeys(true));\r\n } finally {\r\n dispatch(actions.setIsLoadedLocaleKeys(true));\r\n dispatch(actions.setIsLoadingLocaleKeys(false));\r\n }\r\n },\r\n getLocaleKeys:\r\n (id?: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n const bundle = await LocalizationService.getLocaleKeys(id);\r\n dispatch(actions.setIsErrorLocaleKeys(false));\r\n await i18Service.onChangeLocaleBundle(bundle, id);\r\n } catch (e: any) {\r\n await dispatch(thunks.handleLocaleKeysError(e));\r\n }\r\n },\r\n getLocaleKeysForAuthorizedUser:\r\n (id?: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setIsLoadingLocaleKeys(true));\r\n const bundle = await LocalizationService.getLocaleKeys(id);\r\n await i18Service.onChangeLocaleBundle(bundle, id);\r\n } catch (e: any) {\r\n await dispatch(thunks.handleLocaleKeysError(e));\r\n } finally {\r\n dispatch(actions.setIsLoadedLocaleKeys(true));\r\n dispatch(actions.setIsLoadingLocaleKeys(false));\r\n }\r\n },\r\n handleLocaleKeysError:\r\n (e: any): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n if (e?.response?.status === Models.BE.HttpStatus.Unauthorized) {\r\n // The user is redirected to login page\r\n const userLocale = LocalizationService.getLoginLocaleCode();\r\n dispatch(thunks.getLocales());\r\n await dispatch(thunks.getLoginLocaleKeys(userLocale));\r\n } else if (!axios.isCancel(e)) {\r\n // The user sees 'Service is not available' message\r\n dispatch(actions.setIsErrorLocaleKeys(true));\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import axios from 'axios';\r\nimport Services from 'shared/shared.services';\r\n// import * as Models from 'shared/shared.models';\r\nimport { Types } from './types';\r\nimport type { AsyncThunkActionType } from '../../interfaces';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport const actions = {\r\n setDataLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_DATA_LOADING,\r\n payload,\r\n } as const),\r\n setGeneratedReport: (payload: Interfaces.PayloadType['generatedReport']) =>\r\n ({\r\n type: Types.SET_GENERATED_REPORT,\r\n payload,\r\n } as const),\r\n setTableData: (payload: Interfaces.PayloadType['dataAndHeaders']) =>\r\n ({\r\n type: Types.SET_TABLE_DATA,\r\n payload,\r\n } as const),\r\n setTableFilters: (payload: Interfaces.PayloadType['filters']) =>\r\n ({\r\n type: Types.SET_TABLE_FILTERS,\r\n payload,\r\n } as const),\r\n\r\n setPaginatedTableData: (payload: Interfaces.PayloadType['paginatedTableData']) =>\r\n ({\r\n type: Types.SET_PAGINATED_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n setFiltersLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_FILTERS_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setChartLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_CHART_LOADING,\r\n payload,\r\n } as const),\r\n setChart: (payload: Interfaces.PayloadType['chartData']) =>\r\n ({\r\n type: Types.SET_CHART_DATA,\r\n payload,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getData:\r\n (reportUId: string, data: any): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setDataLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryDepartmentTableList(reportUId, data);\r\n dispatch(actions.setTableData(responseData));\r\n dispatch(actions.setGeneratedReport(reportUId));\r\n dispatch(actions.setDataLoading(false));\r\n return null;\r\n } catch {\r\n dispatch(actions.setDataLoading(false));\r\n return null;\r\n }\r\n },\r\n getFilters:\r\n (reportUId: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryDepartmentUnitFilters(reportUId);\r\n dispatch(actions.setTableFilters(responseData));\r\n dispatch(actions.setGeneratedReport(reportUId));\r\n return null;\r\n } catch {\r\n return null;\r\n }\r\n },\r\n getChart:\r\n (...params: Parameters): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n try {\r\n const [uid, ...rest] = params;\r\n const reportUId = getState().reports.summaryTotal.generatedReport || uid;\r\n dispatch(actions.setChartLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.summaryDepartmentChart(reportUId, ...rest);\r\n\r\n dispatch(actions.setChart(responseData));\r\n return null;\r\n } catch {\r\n dispatch(actions.setChartLoading(false));\r\n return null;\r\n }\r\n },\r\n getPaginatedData:\r\n (\r\n ...params: Parameters\r\n ): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n const [uid, ...rest] = params;\r\n const reportUId = getState().reports.summaryTotal.generatedReport || uid;\r\n try {\r\n dispatch(actions.setDataLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getReportSummaryDepartmentPaginatedTableData(\r\n reportUId,\r\n ...rest\r\n );\r\n dispatch(actions.setPaginatedTableData(responseData));\r\n dispatch(actions.setGeneratedReport(params[0]));\r\n } catch (err) {\r\n // INFO: for now request can be canceled by next same request only so we no need to change loading state\r\n if (!axios.isCancel(err)) dispatch(actions.setDataLoading(false));\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import axios from 'axios';\r\nimport Services from 'shared/shared.services';\r\nimport { Types } from './types';\r\nimport type { AsyncThunkActionType } from '../../interfaces';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport const actions = {\r\n setDataLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_DATA_LOADING,\r\n payload,\r\n } as const),\r\n setGeneratedReport: (payload: Interfaces.PayloadType['generatedReport']) =>\r\n ({\r\n type: Types.SET_GENERATED_REPORT,\r\n payload,\r\n } as const),\r\n setTableData: (payload: Interfaces.PayloadType['dataAndHeaders']) =>\r\n ({\r\n type: Types.SET_TABLE_DATA,\r\n payload,\r\n } as const),\r\n setPaginatedTableData: (payload: Interfaces.PayloadType['paginatedTableData']) =>\r\n ({\r\n type: Types.SET_PAGINATED_TABLE_DATA,\r\n payload,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getData:\r\n (reportTimeStamp: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setDataLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryEmployeeTableList(reportTimeStamp);\r\n dispatch(actions.setTableData(responseData));\r\n dispatch(actions.setGeneratedReport(reportTimeStamp));\r\n dispatch(actions.setDataLoading(false));\r\n return null;\r\n } catch {\r\n dispatch(actions.setDataLoading(false));\r\n return null;\r\n }\r\n },\r\n getPaginatedData:\r\n (\r\n ...params: Parameters\r\n ): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n const [uid, ...rest] = params;\r\n const reportUId = getState().reports.summaryTotal.generatedReport || uid;\r\n try {\r\n dispatch(actions.setDataLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryEmployeePaginatedTableData(\r\n reportUId,\r\n ...rest\r\n );\r\n dispatch(actions.setPaginatedTableData(responseData));\r\n dispatch(actions.setGeneratedReport(params[0]));\r\n } catch (err) {\r\n // INFO: for now request can be canceled by next same request only so we no need to change loading state\r\n if (!axios.isCancel(err)) dispatch(actions.setDataLoading(false));\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import axios from 'axios';\r\nimport Services from 'shared/shared.services';\r\nimport { Types } from './types';\r\nimport type { AsyncThunkActionType } from '../../interfaces';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport const actions = {\r\n setDataLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_DATA_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setGeneratedReport: (payload: Interfaces.PayloadType['generatedReport']) =>\r\n ({\r\n type: Types.SET_GENERATED_REPORT,\r\n payload,\r\n } as const),\r\n\r\n setTableData: (payload: Interfaces.PayloadType['dataAndHeaders']) =>\r\n ({\r\n type: Types.SET_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n setTableFilters: (payload: Interfaces.PayloadType['filters']) =>\r\n ({\r\n type: Types.SET_TABLE_FILTERS,\r\n payload,\r\n } as const),\r\n\r\n setPaginatedTableData: (payload: Interfaces.PayloadType['paginatedTableData']) =>\r\n ({\r\n type: Types.SET_PAGINATED_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n setFiltersLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_FILTERS_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setChartLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_CHART_LOADING,\r\n payload,\r\n } as const),\r\n setChart: (payload: Interfaces.PayloadType['chartData']) =>\r\n ({\r\n type: Types.SET_CHART_DATA,\r\n payload,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getData:\r\n (reportTimeStamp: string, filter: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setDataLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryGeographicalTableList(\r\n reportTimeStamp,\r\n filter\r\n );\r\n dispatch(actions.setTableData(responseData));\r\n dispatch(actions.setGeneratedReport(reportTimeStamp));\r\n dispatch(actions.setDataLoading(false));\r\n return null;\r\n } catch {\r\n dispatch(actions.setDataLoading(false));\r\n return null;\r\n }\r\n },\r\n\r\n getFilters:\r\n (reportTimeStamp: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryGeographicalFilters(reportTimeStamp);\r\n dispatch(actions.setTableFilters(responseData));\r\n dispatch(actions.setGeneratedReport(reportTimeStamp));\r\n return null;\r\n } catch {\r\n return null;\r\n }\r\n },\r\n getChart:\r\n (reportUId: string, filter: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setChartLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryGeographicalChart(reportUId, filter);\r\n\r\n dispatch(actions.setChart(responseData));\r\n return null;\r\n } catch {\r\n dispatch(actions.setChartLoading(false));\r\n return null;\r\n }\r\n },\r\n getPaginatedData:\r\n (\r\n ...params: Parameters\r\n ): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n const [uid, ...rest] = params;\r\n const reportUId = getState().reports.summaryTotal.generatedReport || uid;\r\n try {\r\n dispatch(actions.setDataLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getReportSummaryGeographicalPaginatedTableData(\r\n reportUId,\r\n ...rest\r\n );\r\n dispatch(actions.setPaginatedTableData(responseData));\r\n dispatch(actions.setGeneratedReport(params[0]));\r\n } catch (err) {\r\n // INFO: for now request can be canceled by next same request only so we no need to change loading state\r\n if (!axios.isCancel(err)) dispatch(actions.setDataLoading(false));\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import axios from 'axios';\r\nimport { Types } from './types';\r\nimport Services from '../../../shared/shared.services';\r\nimport type { AsyncThunkActionType } from '../../interfaces';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport const actions = {\r\n setDataLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_DATA_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setGeneratedReport: (payload: Interfaces.PayloadType['generatedReport']) =>\r\n ({\r\n type: Types.SET_GENERATED_REPORT,\r\n payload,\r\n } as const),\r\n\r\n setTableData: (payload: Interfaces.PayloadType['dataAndHeaders']) =>\r\n ({\r\n type: Types.SET_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n setTableFilters: (payload: Interfaces.PayloadType['filters']) =>\r\n ({\r\n type: Types.SET_TABLE_FILTERS,\r\n payload,\r\n } as const),\r\n\r\n setChart: (payload: Interfaces.PayloadType['chartData']) =>\r\n ({\r\n type: Types.SET_CHART_DATA,\r\n payload,\r\n } as const),\r\n\r\n setPieChart: (payload: Interfaces.PayloadType['pieChartData']) =>\r\n ({\r\n type: Types.SET_PIE_CHART_DATA,\r\n payload,\r\n } as const),\r\n\r\n setPaginatedTableData: (payload: Interfaces.PayloadType['paginatedTableData']) =>\r\n ({\r\n type: Types.SET_PAGINATED_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n setFiltersLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_FILTERS_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setChartLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_CHART_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setPieChartLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_PIE_CHART_LOADING,\r\n payload,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getData:\r\n (reportTimeStamp: string, filter: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setDataLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryPlanTableList(reportTimeStamp, filter);\r\n dispatch(actions.setTableData(responseData));\r\n dispatch(actions.setGeneratedReport(reportTimeStamp));\r\n dispatch(actions.setDataLoading(false));\r\n return null;\r\n } catch {\r\n dispatch(actions.setDataLoading(false));\r\n return null;\r\n }\r\n },\r\n getFilters:\r\n (reportTimeStamp: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setFiltersLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryPlanFilters(reportTimeStamp);\r\n dispatch(actions.setTableFilters(responseData));\r\n dispatch(actions.setGeneratedReport(reportTimeStamp));\r\n return null;\r\n } catch {\r\n dispatch(actions.setFiltersLoading(false));\r\n return null;\r\n }\r\n },\r\n getChart:\r\n (reportTimeStamp: string, filter: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setChartLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryPlanChart(reportTimeStamp, filter);\r\n dispatch(actions.setChart(responseData));\r\n return null;\r\n } catch {\r\n dispatch(actions.setChartLoading(false));\r\n return null;\r\n }\r\n },\r\n getPieChart:\r\n (reportUId: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setPieChartLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryPlanPieChart(reportUId);\r\n dispatch(actions.setPieChart(responseData));\r\n return null;\r\n } catch {\r\n dispatch(actions.setPieChartLoading(false));\r\n return null;\r\n }\r\n },\r\n getPaginatedData:\r\n (\r\n ...params: Parameters\r\n ): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n const [uid, ...rest] = params;\r\n const reportUId = getState().reports.summaryTotal.generatedReport || uid;\r\n try {\r\n dispatch(actions.setDataLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryPlanPaginatedTableData(reportUId, ...rest);\r\n dispatch(actions.setPaginatedTableData(responseData));\r\n dispatch(actions.setGeneratedReport(params[0]));\r\n } catch (err) {\r\n // INFO: for now request can be canceled by next same request only so we no need to change loading state\r\n if (!axios.isCancel(err)) dispatch(actions.setDataLoading(false));\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import { ITrueUpFilterProps, ColumnConfiguration, TrueUpReportTableData } from 'shared/models/models.bl';\r\n\r\nexport const getTableHeadersAfterFiltering = (\r\n filters?: ITrueUpFilterProps,\r\n newHeaders?: ColumnConfiguration[],\r\n prevHeaders?: ColumnConfiguration[],\r\n savePreviousHeaders = false\r\n): ColumnConfiguration[] => {\r\n const hasFilters = !!filters && Object.values(filters).some((value) => !!value);\r\n\r\n if ((hasFilters || savePreviousHeaders) && !newHeaders?.length) {\r\n return prevHeaders?.length ? prevHeaders : [];\r\n }\r\n return newHeaders?.length ? newHeaders : [];\r\n};\r\n","import { ITrueUpCalculationRequest, ITrueUpFilterProps } from 'shared/models/models.bl';\r\nimport Services from 'shared/shared.services';\r\n\r\nimport { defaultPagingRequestData } from 'shared/configs/grid.config';\r\nimport type * as BM from 'shared/models/models.bl';\r\nimport { getParsedResponseData } from 'shared/services/bl/helpers';\r\nimport Configs from 'shared/shared.configs';\r\nimport { defaultFilters } from 'Pages/ExpenseReports/helpers';\r\nimport type { AsyncThunkActionType } from '../../interfaces';\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\nimport { getTableHeadersAfterFiltering } from './helpers';\r\n\r\nexport const actions = {\r\n setLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setCalculating: (payload: Interfaces.PayloadType['calculating']) =>\r\n ({\r\n type: Types.SET_CALCULATING,\r\n payload,\r\n } as const),\r\n\r\n setIsCalculationCompleted: (payload: Interfaces.PayloadType['isCalculationCompleted']) =>\r\n ({\r\n type: Types.SET_IS_CALCULATION_COMPLETED,\r\n payload,\r\n } as const),\r\n\r\n setInfoData: (payload: Interfaces.PayloadType['infoData']) =>\r\n ({\r\n type: Types.SET_INFO_DATA,\r\n payload,\r\n } as const),\r\n\r\n setTableData: (payload: Interfaces.PayloadType['tableData']) =>\r\n ({\r\n type: Types.SET_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n setNewReportTableData: (payload: Interfaces.PayloadType['newReportTableData']) =>\r\n ({\r\n type: Types.SET_NEW_REPORT_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n setPreviousReportTableData: (payload: Interfaces.PayloadType['previousReportTableData']) =>\r\n ({\r\n type: Types.SET_PREVIOUS_REPORT_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n resetStateData: () =>\r\n ({\r\n type: Types.RESET_STATE_DATA,\r\n } as const),\r\n\r\n setFiltering: (payload: Interfaces.PayloadType['filtering']) =>\r\n ({\r\n type: Types.SET_FILTERING,\r\n payload,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getInfoData:\r\n (reportUId: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n const infoData = await Services.BL.TrueUp.getTrueUpInfoData(reportUId);\r\n // infoData DTO contains 'previousReportUID' and 'newReportUID', but in app and in query params we use last 'D' in lowercase\r\n\r\n dispatch(actions.setInfoData(infoData));\r\n\r\n if (infoData.previousReportUID) {\r\n dispatch(actions.setIsCalculationCompleted(true));\r\n }\r\n\r\n return null;\r\n } catch {\r\n return null;\r\n }\r\n },\r\n\r\n getTableData:\r\n (reportUId: string, filters?: ITrueUpFilterProps): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n try {\r\n const tableData = await Services.BL.TrueUp.getTrueUpTableData(reportUId, filters);\r\n if (filters) {\r\n const prevData = getState().reports.trueUp.tableData;\r\n tableData.header = getTableHeadersAfterFiltering(filters, tableData.header, prevData?.header);\r\n }\r\n if (tableData.data.length === 3) {\r\n tableData.data[0].bgColor = `#F5F5F5`; // total vested of new report\r\n tableData.data[1].bgColor = `#FFFFFF`; // total vested of prev report\r\n tableData.data[2].bgColor = `#E0FFFF`; // new report total vested - prev report total vested\r\n }\r\n dispatch(actions.setTableData(tableData));\r\n return null;\r\n } catch {\r\n return null;\r\n }\r\n },\r\n\r\n getNewReportTableData:\r\n ({\r\n reportUId,\r\n tableParams,\r\n filters,\r\n }: {\r\n reportUId: string;\r\n tableParams?: BM.ITableDataInfoRequest;\r\n filters?: ITrueUpFilterProps;\r\n }): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n const requestTableParams = tableParams || defaultPagingRequestData;\r\n const requestFilters = filters || defaultFilters;\r\n\r\n try {\r\n const newReportTableData = await Services.BL.TrueUp.getNewReportTrueUpTableData({\r\n reportUId,\r\n ...requestTableParams,\r\n ...requestFilters,\r\n });\r\n\r\n const prevData = getState().reports.trueUp.newReportTableData;\r\n // Set previous table header if response tableData is null\r\n const header = getTableHeadersAfterFiltering(\r\n filters,\r\n newReportTableData?.tableData?.header,\r\n prevData?.tableData?.header,\r\n true\r\n );\r\n newReportTableData.tableData = getParsedResponseData(\r\n { header, data: newReportTableData?.tableData?.data || [] },\r\n Configs.Grid.GridColumnConfig.TrueUpReportConfig\r\n ) as any;\r\n dispatch(actions.setNewReportTableData(newReportTableData));\r\n\r\n return null;\r\n } catch {\r\n return null;\r\n }\r\n },\r\n\r\n getPreviousReportTableData:\r\n ({\r\n reportUId,\r\n tableParams,\r\n filters,\r\n }: {\r\n reportUId: string;\r\n tableParams?: BM.ITableDataInfoRequest;\r\n filters?: ITrueUpFilterProps;\r\n }): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n try {\r\n const requestTableParams = tableParams || defaultPagingRequestData;\r\n const requestFilters = filters || defaultFilters;\r\n const previousReportTableData = await Services.BL.TrueUp.getPreviousReportTrueUpTableData({\r\n reportUId,\r\n ...requestTableParams,\r\n ...requestFilters,\r\n });\r\n\r\n const prevData = getState().reports.trueUp.previousReportTableData;\r\n // Set previous table header if response tableData is null\r\n const header = getTableHeadersAfterFiltering(\r\n filters,\r\n previousReportTableData?.tableData?.header,\r\n prevData?.tableData?.header,\r\n true\r\n );\r\n previousReportTableData.tableData = getParsedResponseData(\r\n { header, data: previousReportTableData?.tableData?.data || [] },\r\n Configs.Grid.GridColumnConfig.TrueUpReportConfig\r\n ) as any;\r\n dispatch(actions.setPreviousReportTableData(previousReportTableData));\r\n return null;\r\n } catch {\r\n return null;\r\n }\r\n },\r\n\r\n filterTables:\r\n (reportUId: string, filters?: ITrueUpFilterProps): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n dispatch(actions.setFiltering(true));\r\n try {\r\n await Promise.all([\r\n dispatch(thunks.getTableData(reportUId, filters)),\r\n dispatch(thunks.getNewReportTableData({ reportUId, filters })),\r\n dispatch(thunks.getPreviousReportTableData({ reportUId, filters })),\r\n ]);\r\n dispatch(actions.setFiltering(false));\r\n return null;\r\n } catch {\r\n dispatch(actions.setFiltering(false));\r\n return null;\r\n }\r\n },\r\n\r\n initialRequests:\r\n ({ reportUId }: { reportUId: string }): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n dispatch(actions.setLoading(true));\r\n\r\n try {\r\n await Promise.all([\r\n dispatch(thunks.getInfoData(reportUId)),\r\n dispatch(thunks.getTableData(reportUId)),\r\n dispatch(thunks.getNewReportTableData({ reportUId })),\r\n dispatch(thunks.getPreviousReportTableData({ reportUId })),\r\n ]);\r\n\r\n dispatch(actions.setLoading(false));\r\n return null;\r\n } catch {\r\n dispatch(actions.setLoading(false));\r\n return null;\r\n }\r\n },\r\n\r\n startCalculation:\r\n (fieldValues: ITrueUpCalculationRequest, successCallback?: () => void): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n const { reportUId } = fieldValues;\r\n\r\n dispatch(actions.setCalculating(true));\r\n dispatch(actions.setLoading(true));\r\n\r\n try {\r\n const calculationRes = await Services.BL.TrueUp.trueUpStartCalculation(fieldValues);\r\n successCallback?.();\r\n if (calculationRes.success) {\r\n await dispatch(\r\n thunks.initialRequests({\r\n reportUId,\r\n })\r\n );\r\n dispatch(actions.setCalculating(false));\r\n } else {\r\n dispatch(actions.setCalculating(false));\r\n dispatch(actions.setLoading(false));\r\n }\r\n\r\n return null;\r\n } catch {\r\n dispatch(actions.setCalculating(false));\r\n dispatch(actions.setLoading(false));\r\n return null;\r\n }\r\n },\r\n\r\n deleteAllTrueUpData:\r\n (reportTimeStamp: string, successCallback?: () => void): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n await Services.BL.TrueUp.deleteAllTrueUpData(reportTimeStamp);\r\n successCallback?.();\r\n dispatch(actions.resetStateData());\r\n\r\n return null;\r\n } catch {\r\n return null;\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import axios from 'axios';\r\nimport { Types } from './types';\r\nimport Services from '../../../shared/shared.services';\r\nimport type { AsyncThunkActionType } from '../../interfaces';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport const actions = {\r\n setDataLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_DATA_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setGeneratedReport: (payload: Interfaces.PayloadType['generatedReport']) =>\r\n ({\r\n type: Types.SET_GENERATED_REPORT,\r\n payload,\r\n } as const),\r\n\r\n setTableData: (payload: Interfaces.PayloadType['dataAndHeaders']) =>\r\n ({\r\n type: Types.SET_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n setTableFilters: (payload: Interfaces.PayloadType['filters']) =>\r\n ({\r\n type: Types.SET_TABLE_FILTERS,\r\n payload,\r\n } as const),\r\n\r\n setChart: (payload: Interfaces.PayloadType['chartData']) =>\r\n ({\r\n type: Types.SET_CHART_DATA,\r\n payload,\r\n } as const),\r\n\r\n setPaginatedTableData: (payload: Interfaces.PayloadType['paginatedTableData']) =>\r\n ({\r\n type: Types.SET_PAGINATED_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n setFiltersLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_FILTERS_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setChartLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_CHART_LOADING,\r\n payload,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getFilters:\r\n (reportTimeStamp: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setFiltersLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryExpenseOutlookFilters(reportTimeStamp);\r\n dispatch(actions.setTableFilters(responseData));\r\n dispatch(actions.setGeneratedReport(reportTimeStamp));\r\n return null;\r\n } catch {\r\n dispatch(actions.setFiltersLoading(false));\r\n return null;\r\n }\r\n },\r\n getChart:\r\n (reportTimeStamp: string, filter: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setChartLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryExpenseOutlookChart(\r\n reportTimeStamp,\r\n filter\r\n );\r\n dispatch(actions.setChart(responseData));\r\n return null;\r\n } catch {\r\n dispatch(actions.setChartLoading(false));\r\n return null;\r\n }\r\n },\r\n getPaginatedData:\r\n (\r\n ...params: Parameters\r\n ): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n const [uid, ...rest] = params;\r\n const reportUId = getState().reports.summaryTotal.generatedReport || uid;\r\n try {\r\n dispatch(actions.setDataLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryExpenseOutlookPaginatedTableData(\r\n reportUId,\r\n ...rest\r\n );\r\n dispatch(actions.setPaginatedTableData(responseData));\r\n dispatch(actions.setGeneratedReport(params[0]));\r\n } catch (err) {\r\n // INFO: for now request can be canceled by next same request only so we no need to change loading state\r\n if (!axios.isCancel(err)) dispatch(actions.setDataLoading(false));\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import DepartmentView from './departmentView/actions';\r\nimport EmployeeView from './employeeView/actions';\r\nimport GeographicalView from './geographicalView/actions';\r\nimport PlanView from './planView/actions';\r\nimport ProvisionalExpense from './provisionalExpense/actions';\r\nimport SummaryTotal from './summaryTotal/actions';\r\nimport TrueUp from './trueUp/actions';\r\nimport { Types } from './types';\r\nimport ExpenseOutlookView from './expenseOutlookView/actions';\r\n\r\nconst resetReportsState = () =>\r\n ({\r\n type: Types.RESET_REPORTS_STATE,\r\n } as const);\r\n\r\nexport const Reports = {\r\n SummaryTotal,\r\n DepartmentView,\r\n EmployeeView,\r\n GeographicalView,\r\n PlanView,\r\n ProvisionalExpense,\r\n TrueUp,\r\n resetReportsState,\r\n ExpenseOutlookView,\r\n};\r\n","import { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport const actions = {\r\n setCurrentEmployeeContractId: (payload: Interfaces.PayloadType['currentEmployeeContractId']) =>\r\n ({\r\n type: Types.SET_CURRENT_EMPLOYEE_CONTRACT_ID,\r\n payload,\r\n } as const),\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n};\r\n","import Expenses from './expenses/actions';\r\nimport Files from './files/actions';\r\nimport FileUploading from './fileUploading/actions';\r\nimport Localization from './localization/actions';\r\nimport { Reports } from './reports/actions';\r\nimport { toggleUserPanel } from './userPanel/actions';\r\nimport { toggleNotificationCenter, reloadRelatedData } from './notificationCenter/actions';\r\nimport DataExportingStatus from './dataExporting/actions';\r\nimport ManagerEmployeeContracts from './managerEmployeeContracts/actions';\r\n\r\nexport const StoreActions = {\r\n Expenses,\r\n Reports,\r\n Files,\r\n FileUploading,\r\n Localization,\r\n DataExportingStatus,\r\n UserPanel: { toggle: toggleUserPanel },\r\n NotificationCenter: { toggle: toggleNotificationCenter, reloadRelatedData },\r\n ManagerEmployeeContracts,\r\n};\r\n","import { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport const toggleUserPanel = (isOpen?: Interfaces.StoreType) =>\r\n ({\r\n type: Types.SET_IS_OPEN,\r\n payload: isOpen,\r\n } as const);\r\n","import { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport const toggleNotificationCenter = (isOpen?: Interfaces.StoreType['isOpen']) =>\r\n ({\r\n type: Types.SET_IS_OPEN,\r\n payload: isOpen,\r\n } as const);\r\n\r\nexport const reloadRelatedData = (dataKey: Interfaces.RelatedDataKeyForReload) =>\r\n ({\r\n type: Types.RELOAD_RELATED_DATA,\r\n payload: dataKey,\r\n } as const);\r\n","import axios from 'axios';\r\nimport type { ExportingStatusResponseData } from '../../models/models.dl';\r\nimport type { IExportingDataApiEntity } from '../../models/models.bl';\r\nimport { DataExportingView } from '../../models/enums.dl';\r\nimport { ApiEntity, ReportsApiEntity } from '../../models/enums.bl';\r\nimport ApiUrlsService from './api-urls.service';\r\n\r\nconst apiEntityByExportView: Record = {\r\n [DataExportingView.shareRegister]: ApiEntity.ShareRegister,\r\n [DataExportingView.activityLogs]: ApiEntity.ActivityLogs,\r\n [DataExportingView.customVesting]: ApiEntity.CustomVestingSchedule,\r\n [DataExportingView.employeeStatus]: ApiEntity.EmployeeStatus,\r\n [DataExportingView.grandValuation]: ApiEntity.GrantValuation,\r\n [DataExportingView.journalEntries]: ApiEntity.JournalEntries,\r\n [DataExportingView.sbpExpensesReportsMyIncentivePlanSummary]: `${ApiEntity.Reports}/${ReportsApiEntity.MyIncentivePlanSummary}`,\r\n [DataExportingView.sbpExpensesReportsDepartmentView]: `${ApiEntity.Reports}/${ReportsApiEntity.Department}`,\r\n [DataExportingView.sbpExpensesReportsDetailed]: ApiEntity.ExpenseCalculations,\r\n [DataExportingView.sbpExpensesReportsSummaryTotal]: `${ApiEntity.Reports}/${ReportsApiEntity.SummaryTotal}`,\r\n [DataExportingView.sbpExpensesReportsEmployeeView]: `${ApiEntity.Reports}/${ReportsApiEntity.Employee}`,\r\n [DataExportingView.sbpExpensesReportsGeographicalView]: `${ApiEntity.Reports}/${ReportsApiEntity.Geographical}`,\r\n [DataExportingView.sbpExpensesReportsPlanView]: `${ApiEntity.Reports}/${ReportsApiEntity.Plan}`,\r\n [DataExportingView.sbpExpensesReportsProvisionExpense]: ApiEntity.ProvisionExpense,\r\n [DataExportingView.sbpExpensesReportsTrueUpExpense]: ApiEntity.TrueUp,\r\n [DataExportingView.sbpExpensesReportsExpenseOutlookView]: `${ApiEntity.Reports}/${ReportsApiEntity.ExpenseOutlook}`,\r\n};\r\n\r\nexport default class DataExportingStatus {\r\n static async getStatus(view: DataExportingView): Promise {\r\n try {\r\n const { data } = await axios.get(\r\n ApiUrlsService.getDataExportingStatus(apiEntityByExportView[view])\r\n );\r\n return data;\r\n } catch {\r\n return { isExportInProgress: false, message: '' };\r\n }\r\n }\r\n}\r\n","import { DataExportingView } from 'shared/models/enums.dl';\r\nimport type { ExportingStatusResponseData } from 'shared/models/models.dl';\r\nimport DataExportingStatusService from 'shared/services/bl/dataExportingStatus.service';\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\nimport { AsyncThunkActionType } from '../interfaces';\r\n\r\nexport const actions = {\r\n setIsExporting: (payload: Interfaces.DataExportingPayloadType) =>\r\n ({\r\n type: Types.SET_IS_EXPORTING,\r\n payload,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getExportingStatusData:\r\n (view: DataExportingView): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n const data = await DataExportingStatusService.getStatus(view);\r\n await dispatch(actions.setIsExporting({ view, data }));\r\n return data;\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","export enum TypeName {\r\n SET_IS_EXPORTING = 'SET_IS_EXPORTING',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.DataExporting}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_IS_EXPORTING]: `${baseTypeName}${TypeName.SET_IS_EXPORTING}`,\r\n} as const;\r\n","export enum TypeName {\r\n SET_STATUS = 'SET_STATUS',\r\n STATUS_LOADING = 'STATUS_LOADING',\r\n SET_VALIDATION_DATA = 'SET_VALIDATION_DATA',\r\n PROCEED_MODAL_VISIBILITY = 'PROCEED_MODAL_VISIBILITY',\r\n SHOW_MODAL_WITH_STATUS = 'SHOW_MODAL_WITH_STATUS',\r\n RESET_STATE_DATA = 'RESET_STATE_DATA',\r\n SET_IS_CANCEL = 'SET_IS_CANCEL',\r\n SET_REPORT_PROGRESS_DATA = 'SET_REPORT_PROGRESS_DATA',\r\n}\r\n\r\nexport enum ModalStatus {\r\n GRANT_VALUATION_EMPTY = 'GRANT_VALUATION_EMPTY',\r\n SHARE_REGISTER_EMPTY = 'SHARE_REGISTER_EMPTY',\r\n INVALID_SHARE_REGISTER = 'INVALID_SHARE_REGISTER',\r\n INVALID_PERFORMANCE_HURDLE_ID = 'INVALID_PERFORMANCE_HURDLE_ID',\r\n PROCEED = 'PROCEED',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Expenses}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_STATUS]: `${baseTypeName}${TypeName.SET_STATUS}`,\r\n [TypeName.STATUS_LOADING]: `${baseTypeName}${TypeName.STATUS_LOADING}`,\r\n [TypeName.SET_VALIDATION_DATA]: `${baseTypeName}${TypeName.SET_VALIDATION_DATA}`,\r\n [TypeName.PROCEED_MODAL_VISIBILITY]: `${baseTypeName}${TypeName.PROCEED_MODAL_VISIBILITY}`,\r\n [TypeName.SHOW_MODAL_WITH_STATUS]: `${baseTypeName}${TypeName.SHOW_MODAL_WITH_STATUS}`,\r\n [TypeName.RESET_STATE_DATA]: `${baseTypeName}${TypeName.RESET_STATE_DATA}`,\r\n [TypeName.SET_IS_CANCEL]: `${baseTypeName}${TypeName.SET_IS_CANCEL}`,\r\n [TypeName.SET_REPORT_PROGRESS_DATA]: `${baseTypeName}${TypeName.SET_REPORT_PROGRESS_DATA}`,\r\n} as const;\r\n","export enum TypeName {\r\n SET_IS_UPLOADING = 'SET_IS_UPLOADING',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.FileUploading}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_IS_UPLOADING]: `${baseTypeName}${TypeName.SET_IS_UPLOADING}`,\r\n} as const;\r\n","import type { AppState } from '../interfaces';\r\nimport type { StoreType } from './interfaces';\r\n\r\nexport const selectTemplates = ({ files }: AppState): StoreType['templates'] => files.templates;\r\n\r\nexport const selectIsTemplatesFetching = ({ files }: AppState): StoreType['isTemplatesFetching'] =>\r\n files.isTemplatesFetching;\r\n","export enum TypeName {\r\n SET_TEMPLATE_FILES = 'SET_TEMPLATE_FILES',\r\n SET_TEMPLATE_FILES_FETCHING = 'SET_TEMPLATE_FILES_FETCHING',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Files}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_TEMPLATE_FILES]: `${baseTypeName}${TypeName.SET_TEMPLATE_FILES}`,\r\n [TypeName.SET_TEMPLATE_FILES_FETCHING]: `${baseTypeName}${TypeName.SET_TEMPLATE_FILES_FETCHING}`,\r\n} as const;\r\n","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","export const currentUserBrowserStorage = window.localStorage;\r\n","import { UserSettings } from '../../shared/models/models.dl';\r\nimport { currentUserBrowserStorage } from '../browserStorage';\r\nimport { StoreName } from '../storeName';\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nconst userFromBrowserStorage = currentUserBrowserStorage.getItem(StoreName.CurrentUser);\r\n\r\nconst initialState: Interfaces.StoreType = userFromBrowserStorage\r\n ? (JSON.parse(userFromBrowserStorage) as Interfaces.StoreType)\r\n : {\r\n user: null,\r\n tokenObj: null,\r\n };\r\n\r\nexport default function currentUserReducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.CurrentUserActions = {} as Interfaces.CurrentUserActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_USER:\r\n case Types.SET_TOKEN: {\r\n const newState = {\r\n ...state,\r\n ...action.payload,\r\n };\r\n currentUserBrowserStorage.setItem(StoreName.CurrentUser, JSON.stringify(newState));\r\n return newState;\r\n }\r\n case Types.SET_SETTINGS: {\r\n if (!state.user) return state;\r\n const newState = {\r\n ...state,\r\n user: {\r\n ...state.user,\r\n settings: {\r\n ...(state.user.settings || {}),\r\n ...action.payload,\r\n } as UserSettings,\r\n },\r\n };\r\n currentUserBrowserStorage.setItem(StoreName.CurrentUser, JSON.stringify(newState));\r\n return newState;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","export enum TypeName {\r\n SET_IS_OPEN = 'SET_IS_OPEN',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Sidebar}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_IS_OPEN]: `${baseTypeName}${TypeName.SET_IS_OPEN}`,\r\n} as const;\r\n","import type * as Interfaces from './interfaces';\r\nimport { Types } from './types';\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n status: null,\r\n statusLoading: true,\r\n validationData: null,\r\n isCancel: false,\r\n reportProgressData: null,\r\n};\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.ExpensesViewActions = {} as Interfaces.ExpensesViewActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_STATUS: {\r\n return {\r\n ...state,\r\n status: action.payload,\r\n statusLoading: false,\r\n validationData: null,\r\n };\r\n }\r\n case Types.SET_REPORT_PROGRESS_DATA: {\r\n return {\r\n ...state,\r\n reportProgressData: action.payload,\r\n };\r\n }\r\n case Types.STATUS_LOADING: {\r\n return {\r\n ...state,\r\n statusLoading: action.payload,\r\n };\r\n }\r\n case Types.SET_VALIDATION_DATA: {\r\n return {\r\n ...state,\r\n validationData: action.payload,\r\n statusLoading: false,\r\n };\r\n }\r\n case Types.SET_IS_CANCEL: {\r\n return {\r\n ...state,\r\n isCancel: action.payload,\r\n };\r\n }\r\n case Types.RESET_STATE_DATA: {\r\n return initialState;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { getInitialPaginatedTableData, GridColumnConfig } from 'shared/configs/grid.config';\r\nimport Utils from 'shared/shared.utils';\r\nimport type { SummaryTotalTableData } from 'shared/models/models.bl';\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\nimport * as helpers from './helpers';\r\n\r\nconst defaultFilter = {\r\n id: '',\r\n text: 'SbpExpensesReports.SummaryReportPanel.SummaryTotalTab.GrantDropdown.DefaultOption',\r\n};\r\n\r\nconst initialPaginatedTableData = getInitialPaginatedTableData(\r\n GridColumnConfig.SummaryTotalConfig\r\n);\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n generatedReport: null,\r\n loading: false,\r\n data: [],\r\n headers: null,\r\n filters: [defaultFilter],\r\n ytdExpense: 0,\r\n currentMonthExpense: 0,\r\n onlySumRows: [],\r\n dataForFinalization: null,\r\n paginatedTableData: initialPaginatedTableData,\r\n filtersLoading: false,\r\n chartLoading: false,\r\n chartData: [],\r\n};\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.SummaryTotalActions = {} as Interfaces.SummaryTotalActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_GENERATED_REPORT: {\r\n return { ...state, generatedReport: action.payload };\r\n }\r\n case Types.SET_DATA_LOADING: {\r\n return { ...state, loading: action.payload };\r\n }\r\n case Types.SET_TABLE_FILTERS: {\r\n const filters = Utils.getCorrectTableFiltersFromResponse(action.payload)(state.filters);\r\n return { ...state, filters, filtersLoading: false };\r\n }\r\n case Types.SET_DATA_FOR_FINALIZATION: {\r\n return {\r\n ...state,\r\n dataForFinalization: action.payload\r\n ? {\r\n ...action.payload,\r\n totalProvisions: helpers.getValueFromDateValues(action.payload.listProvisionExpensesPerMonth),\r\n totalTrueUp: helpers.getValueFromDateValues(action.payload.listTrueUpExpensesPerMonth),\r\n }\r\n : null,\r\n };\r\n }\r\n case Types.SET_PAGINATED_TABLE_DATA: {\r\n let paginatedTableData = action.payload || initialPaginatedTableData;\r\n if (!paginatedTableData.tableData) {\r\n paginatedTableData = {\r\n ...paginatedTableData,\r\n tableData: initialPaginatedTableData.tableData,\r\n };\r\n }\r\n return {\r\n ...state,\r\n loading: false,\r\n paginatedTableData,\r\n };\r\n }\r\n case Types.SET_FILTERS_LOADING: {\r\n return { ...state, filtersLoading: action.payload };\r\n }\r\n case Types.SET_CHART_LOADING: {\r\n return { ...state, chartLoading: action.payload };\r\n }\r\n case Types.SET_CHART_DATA: {\r\n return {\r\n ...state,\r\n chartData: action.payload,\r\n ...helpers.getTotalExpensesFromChartData(action.payload),\r\n chartLoading: false,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { getInitialPaginatedTableData, GridColumnConfig } from 'shared/configs/grid.config';\r\nimport Utils from 'shared/shared.utils';\r\nimport type { EmployeeViewTableData } from 'shared/models/models.bl';\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nconst initialPaginatedTableData = getInitialPaginatedTableData(\r\n GridColumnConfig.GeographicalViewConfig\r\n);\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n generatedReport: null,\r\n loading: false,\r\n data: [],\r\n headers: null,\r\n onlySumRows: [],\r\n paginatedTableData: initialPaginatedTableData,\r\n};\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.EmployeeViewActions = {} as Interfaces.EmployeeViewActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_GENERATED_REPORT: {\r\n return { ...state, generatedReport: action.payload };\r\n }\r\n case Types.SET_DATA_LOADING: {\r\n return { ...state, loading: action.payload };\r\n }\r\n case Types.SET_TABLE_DATA: {\r\n const { getRows, getHeaders } = Utils.getCorrectTableDataFromResponse(action.payload);\r\n const data = getRows(state.data);\r\n const headers = getHeaders(state.headers);\r\n return data !== state.data || headers !== state.headers\r\n ? {\r\n ...state,\r\n data,\r\n headers,\r\n onlySumRows: headers?.[0]?.name ? Utils.getOnlySumRows(data, headers[0].name) : [],\r\n }\r\n : state;\r\n }\r\n case Types.SET_PAGINATED_TABLE_DATA: {\r\n let paginatedTableData = action.payload || initialPaginatedTableData;\r\n if (!paginatedTableData.tableData) {\r\n paginatedTableData = {\r\n ...paginatedTableData,\r\n tableData: initialPaginatedTableData.tableData,\r\n };\r\n }\r\n return {\r\n ...state,\r\n loading: false,\r\n paginatedTableData,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { getInitialPaginatedTableData, GridColumnConfig } from 'shared/configs/grid.config';\r\nimport Utils from 'shared/shared.utils';\r\nimport type { GeographicalViewTableData } from 'shared/models/models.bl';\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nconst initialPaginatedTableData = getInitialPaginatedTableData(\r\n GridColumnConfig.GeographicalViewConfig\r\n);\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n generatedReport: null,\r\n loading: false,\r\n data: [],\r\n headers: null,\r\n filters: [],\r\n onlySumRows: [],\r\n paginatedTableData: initialPaginatedTableData,\r\n filtersLoading: false,\r\n chartLoading: false,\r\n chartData: [],\r\n};\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.GeographicalViewActions = {} as Interfaces.GeographicalViewActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_GENERATED_REPORT: {\r\n return { ...state, generatedReport: action.payload };\r\n }\r\n case Types.SET_DATA_LOADING: {\r\n return { ...state, loading: action.payload };\r\n }\r\n case Types.SET_TABLE_DATA: {\r\n const { getRows, getHeaders } = Utils.getCorrectTableDataFromResponse(action.payload);\r\n const data = getRows(state.data);\r\n const headers = getHeaders(state.headers);\r\n return data !== state.data || headers !== state.headers\r\n ? {\r\n ...state,\r\n data,\r\n headers,\r\n onlySumRows: headers?.[0]?.name\r\n ? Utils.getOnlySumRows(data, headers[0].name)\r\n : [],\r\n }\r\n : state;\r\n }\r\n case Types.SET_TABLE_FILTERS: {\r\n const filters = Utils.getCorrectTableFiltersFromResponse(action.payload)(state.filters);\r\n return { ...state, filters, filtersLoading: false };\r\n }\r\n case Types.SET_PAGINATED_TABLE_DATA: {\r\n let paginatedTableData = action.payload || initialPaginatedTableData;\r\n if (!paginatedTableData.tableData) {\r\n paginatedTableData = {\r\n ...paginatedTableData,\r\n tableData: initialPaginatedTableData.tableData,\r\n };\r\n }\r\n return {\r\n ...state,\r\n loading: false,\r\n paginatedTableData,\r\n };\r\n }\r\n case Types.SET_FILTERS_LOADING: {\r\n return { ...state, filtersLoading: action.payload };\r\n }\r\n case Types.SET_CHART_LOADING: {\r\n return { ...state, chartLoading: action.payload };\r\n }\r\n case Types.SET_CHART_DATA: {\r\n return { ...state, chartData: action.payload, chartLoading: false };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { getInitialPaginatedTableData, GridColumnConfig } from 'shared/configs/grid.config';\r\nimport Utils from 'shared/shared.utils';\r\nimport type { PlanViewTableData } from 'shared/models/models.bl';\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nconst initialPaginatedTableData = getInitialPaginatedTableData(GridColumnConfig.PlanViewConfig);\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n generatedReport: null,\r\n loading: false,\r\n data: [],\r\n headers: null,\r\n chartData: [],\r\n pieChartData: [],\r\n filters: [],\r\n onlySumRows: [],\r\n paginatedTableData: initialPaginatedTableData,\r\n filtersLoading: false,\r\n chartLoading: false,\r\n pieChartLoading: false,\r\n};\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.PlanViewActions = {} as Interfaces.PlanViewActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_GENERATED_REPORT: {\r\n return { ...state, generatedReport: action.payload };\r\n }\r\n case Types.SET_DATA_LOADING: {\r\n return { ...state, loading: action.payload };\r\n }\r\n case Types.SET_TABLE_DATA: {\r\n const { getRows, getHeaders } = Utils.getCorrectTableDataFromResponse(action.payload);\r\n const data = getRows(state.data);\r\n const headers = getHeaders(state.headers);\r\n return data !== state.data || headers !== state.headers\r\n ? {\r\n ...state,\r\n data,\r\n headers,\r\n onlySumRows: headers?.[0]?.name ? Utils.getOnlySumRows(data, headers[0].name) : [],\r\n }\r\n : state;\r\n }\r\n case Types.SET_TABLE_FILTERS: {\r\n const filters = Utils.getCorrectTableFiltersFromResponse(action.payload)(state.filters);\r\n return { ...state, filters, filtersLoading: false };\r\n }\r\n case Types.SET_CHART_DATA: {\r\n const chartData = Utils.getCorrectChartDataFromResponse(action.payload)(state.chartData);\r\n return { ...state, chartData, chartLoading: false };\r\n }\r\n case Types.SET_PIE_CHART_DATA: {\r\n const pieChartData = Utils.getCorrectChartDataFromResponse(action.payload)(state.pieChartData);\r\n return { ...state, pieChartData, pieChartLoading: false };\r\n }\r\n case Types.SET_PAGINATED_TABLE_DATA: {\r\n let paginatedTableData = action.payload || initialPaginatedTableData;\r\n if (!paginatedTableData.tableData) {\r\n paginatedTableData = {\r\n ...paginatedTableData,\r\n tableData: initialPaginatedTableData.tableData,\r\n };\r\n }\r\n return {\r\n ...state,\r\n loading: false,\r\n paginatedTableData,\r\n };\r\n }\r\n case Types.SET_FILTERS_LOADING: {\r\n return { ...state, filtersLoading: action.payload };\r\n }\r\n case Types.SET_CHART_LOADING: {\r\n return { ...state, chartLoading: action.payload };\r\n }\r\n case Types.SET_PIE_CHART_LOADING: {\r\n return { ...state, pieChartLoading: action.payload };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import Utils from 'shared/shared.utils';\r\nimport type { TrueUpReportTableData } from 'shared/models/models.bl';\r\nimport { getInitialPaginatedTableData, GridColumnConfig } from 'shared/configs/grid.config';\r\n\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nconst defaultFilter = { id: '', text: 'All' };\r\n\r\nconst initialPaginatedTableData = getInitialPaginatedTableData(\r\n GridColumnConfig.TrueUpReportConfig\r\n);\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n loading: false,\r\n calculating: false,\r\n filtering: false,\r\n isCalculationCompleted: false,\r\n infoData: {\r\n reportStartDate: '',\r\n reportEndDate: '',\r\n previousReportUId: '',\r\n newReportUId: '',\r\n success: true,\r\n trueUpExpense: 0,\r\n employeesInReport1NotIn2: '',\r\n employeesInReport2NotIn1: '',\r\n grantsInReport1NotIn2: '',\r\n grantsInReport2NotIn1: '',\r\n locations: [defaultFilter],\r\n schemes: [defaultFilter],\r\n },\r\n tableData: null,\r\n newReportTableData: initialPaginatedTableData,\r\n previousReportTableData: initialPaginatedTableData,\r\n};\r\n\r\nconst blankSymbol = '--';\r\n\r\nconst prepareTextField = (text: string | undefined): string => (text ? `${text.split(',').length}` : blankSymbol);\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.TrueUpActions = {} as Interfaces.TrueUpActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_LOADING: {\r\n return { ...state, loading: action.payload };\r\n }\r\n case Types.SET_CALCULATING: {\r\n return { ...state, calculating: action.payload };\r\n }\r\n case Types.SET_FILTERING: {\r\n return { ...state, filtering: action.payload };\r\n }\r\n case Types.SET_IS_CALCULATION_COMPLETED: {\r\n return { ...state, isCalculationCompleted: action.payload };\r\n }\r\n case Types.SET_INFO_DATA: {\r\n const infoData = {\r\n reportStartDate: action.payload?.reportStartDate || '',\r\n reportEndDate: action.payload?.reportEndDate || '',\r\n previousReportUId: action.payload?.previousReportUID || '',\r\n newReportUId: action.payload?.newReportUID || '',\r\n success: true,\r\n trueUpExpense: action.payload?.trueUpExpense || 0,\r\n employeesInReport1NotIn2: prepareTextField(action.payload?.employeesInReport1NotIn2),\r\n employeesInReport2NotIn1: prepareTextField(action.payload?.employeesInReport2NotIn1),\r\n grantsInReport1NotIn2: prepareTextField(action.payload?.grantsInReport1NotIn2),\r\n grantsInReport2NotIn1: prepareTextField(action.payload?.grantsInReport2NotIn1),\r\n locations: Utils.getCorrectTableFiltersFromResponse(action.payload?.locations)(state.infoData.locations),\r\n schemes: Utils.getCorrectTableFiltersFromResponse(action.payload?.schemes)(state.infoData.schemes),\r\n };\r\n\r\n return { ...state, infoData };\r\n }\r\n case Types.SET_TABLE_DATA: {\r\n return { ...state, tableData: action.payload };\r\n }\r\n case Types.SET_NEW_REPORT_TABLE_DATA: {\r\n return { ...state, newReportTableData: action.payload };\r\n }\r\n case Types.SET_PREVIOUS_REPORT_TABLE_DATA: {\r\n return { ...state, previousReportTableData: action.payload };\r\n }\r\n case Types.RESET_STATE_DATA: {\r\n return initialState;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { getInitialPaginatedTableData, GridColumnConfig } from 'shared/configs/grid.config';\r\nimport Utils from 'shared/shared.utils';\r\nimport type { ExpenseOutlookTableData } from 'shared/models/models.bl';\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nconst defaultFilter = {\r\n id: '',\r\n text: 'SbpExpensesReports.SummaryReportPanel.ExpenseOutlookTab.GrantDropdown.DefaultOption',\r\n};\r\n\r\nconst initialPaginatedTableData = getInitialPaginatedTableData(\r\n GridColumnConfig.ExpenseOutlookViewConfig\r\n);\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n generatedReport: null,\r\n loading: false,\r\n data: [],\r\n headers: null,\r\n chartData: [],\r\n filters: [defaultFilter],\r\n paginatedTableData: initialPaginatedTableData,\r\n filtersLoading: false,\r\n chartLoading: false,\r\n};\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.ExpenseOutlookActions = {} as Interfaces.ExpenseOutlookActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_GENERATED_REPORT: {\r\n return { ...state, generatedReport: action.payload };\r\n }\r\n case Types.SET_DATA_LOADING: {\r\n return { ...state, loading: action.payload };\r\n }\r\n case Types.SET_TABLE_DATA: {\r\n const { getRows, getHeaders } = Utils.getCorrectTableDataFromResponse(action.payload);\r\n const data = getRows(state.data);\r\n const headers = getHeaders(state.headers);\r\n return data !== state.data || headers !== state.headers\r\n ? {\r\n ...state,\r\n data,\r\n headers,\r\n }\r\n : state;\r\n }\r\n case Types.SET_TABLE_FILTERS: {\r\n const filters = Utils.getCorrectTableFiltersFromResponse(action.payload)(state.filters);\r\n return { ...state, filters, filtersLoading: false };\r\n }\r\n case Types.SET_CHART_DATA: {\r\n const chartData = Utils.getCorrectChartDataFromResponse(action.payload)(state.chartData);\r\n return { ...state, chartData, chartLoading: false };\r\n }\r\n case Types.SET_PAGINATED_TABLE_DATA: {\r\n let paginatedTableData = action.payload || initialPaginatedTableData;\r\n if (!paginatedTableData.tableData) {\r\n paginatedTableData = {\r\n ...paginatedTableData,\r\n tableData: initialPaginatedTableData.tableData,\r\n };\r\n }\r\n return {\r\n ...state,\r\n loading: false,\r\n paginatedTableData,\r\n };\r\n }\r\n case Types.SET_FILTERS_LOADING: {\r\n return { ...state, filtersLoading: action.payload };\r\n }\r\n case Types.SET_CHART_LOADING: {\r\n return { ...state, chartLoading: action.payload };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { combineReducers } from 'redux';\r\nimport { ReportsStoreName as StoreName } from './storeName';\r\nimport summaryTotalReducer from './summaryTotal/reducer';\r\nimport departmentViewReducer from './departmentView/reducer';\r\nimport employeeViewReducer from './employeeView/reducer';\r\nimport geographicalViewReducer from './geographicalView/reducer';\r\nimport planViewReducer from './planView/reducer';\r\nimport provisionalExpense from './provisionalExpense/reducer';\r\nimport trueUp from './trueUp/reducer';\r\nimport expenseOutlookViewReducer from './expenseOutlookView/reducer';\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nconst reportsWithoutResetReducer = combineReducers({\r\n [StoreName.SummaryTotal]: summaryTotalReducer,\r\n [StoreName.DepartmentView]: departmentViewReducer,\r\n [StoreName.EmployeeView]: employeeViewReducer,\r\n [StoreName.GeographicalView]: geographicalViewReducer,\r\n [StoreName.PlanView]: planViewReducer,\r\n [StoreName.ProvisionalExpense]: provisionalExpense,\r\n [StoreName.TrueUp]: trueUp,\r\n [StoreName.ExpenseOutlookView]: expenseOutlookViewReducer,\r\n});\r\n\r\nconst reportsReducer = (\r\n state: Interfaces.ReportsState,\r\n action: Interfaces.ReportsActionsWithReset\r\n): Interfaces.ReportsState => {\r\n return reportsWithoutResetReducer(\r\n action.type === Types.RESET_REPORTS_STATE ? undefined : state,\r\n action as Interfaces.ReportsActions\r\n );\r\n};\r\n\r\nexport default reportsReducer;\r\n","import { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nconst initialState = {\r\n templates: [],\r\n isTemplatesFetching: false,\r\n} as Interfaces.StoreType;\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.FilesActions = {} as Interfaces.FilesActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_TEMPLATE_FILES_FETCHING: {\r\n if (state.isTemplatesFetching === action.payload) return state;\r\n return { ...state, isTemplatesFetching: action.payload };\r\n }\r\n case Types.SET_TEMPLATE_FILES: {\r\n if (!state.templates.length && !action.payload.length) return { ...state, isTemplatesFetching: false };\r\n return { ...state, templates: action.payload, isTemplatesFetching: false };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n isOpen: false,\r\n reload: {\r\n performanceHurdles: 0,\r\n shareRegister: 0,\r\n employeeStatus: 0,\r\n valuationReference: 0,\r\n files: 0,\r\n provisionalExpense: 0,\r\n customVestingSchedules: 0,\r\n },\r\n};\r\n\r\nexport default function sidebarReducer(\r\n state = initialState,\r\n action: Interfaces.NotificationCenterActions = {} as Interfaces.NotificationCenterActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_IS_OPEN: {\r\n return { ...state, isOpen: typeof action.payload === 'boolean' ? action.payload : !state.isOpen };\r\n }\r\n case Types.RELOAD_RELATED_DATA: {\r\n return { ...state, reload: { ...state.reload, [action.payload]: state.reload[action.payload] + 1 } };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import type * as Interfaces from './interfaces';\r\nimport { Types } from './types';\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n shareRegister: false,\r\n grandValuation: false,\r\n employeeStatus: false,\r\n customVesting: false,\r\n};\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.FileUploadingActions = {} as Interfaces.FileUploadingActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_IS_UPLOADING: {\r\n const { value, view } = action.payload;\r\n\r\n return {\r\n ...initialState,\r\n [view]: value,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { transformToSelectFormat } from 'localization/helpers';\r\nimport type * as Interfaces from './interfaces';\r\nimport { Types } from './types';\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n locales: null,\r\n isLoadedLocales: false,\r\n isErrorLocales: false,\r\n isLoadedLocaleKeys: false,\r\n isLoadingLocaleKeys: false,\r\n isErrorLocaleKeys: false,\r\n isErrorLoginLocaleKeys: false,\r\n};\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.LocalizationActions = {} as Interfaces.LocalizationActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_IS_LOADED_LOCALES: {\r\n return {\r\n ...state,\r\n isLoadedLocales: action.payload,\r\n };\r\n }\r\n case Types.SET_IS_ERROR_LOCALES: {\r\n return {\r\n ...state,\r\n isErrorLocales: action.payload,\r\n };\r\n }\r\n case Types.SET_LOCALES: {\r\n return {\r\n ...state,\r\n locales: transformToSelectFormat(action.payload),\r\n };\r\n }\r\n case Types.SET_IS_LOADED_LOCALE_KEYS: {\r\n return {\r\n ...state,\r\n isLoadedLocaleKeys: action.payload,\r\n };\r\n }\r\n case Types.SET_IS_LOADING_LOCALE_KEYS: {\r\n return {\r\n ...state,\r\n isLoadingLocaleKeys: action.payload,\r\n };\r\n }\r\n case Types.SET_IS_ERROR_LOCALE_KEYS: {\r\n return {\r\n ...state,\r\n isErrorLocaleKeys: action.payload,\r\n };\r\n }\r\n case Types.SET_IS_ERROR_LOGIN_LOCALE_KEYS: {\r\n return {\r\n ...state,\r\n isErrorLoginLocaleKeys: action.payload,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import type * as Interfaces from './interfaces';\r\nimport { Types } from './types';\r\n\r\nconst initialState = {} as Interfaces.StoreType;\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action = {} as Interfaces.DataExportingActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_IS_EXPORTING: {\r\n const { data, view } = action.payload;\r\n\r\n return {\r\n ...state,\r\n [view]: data,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import type * as Interfaces from './interfaces';\r\nimport { Types } from './types';\r\n\r\nconst initialState = {\r\n currentEmployeeContractId: '',\r\n} as Interfaces.StoreType;\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action = {} as Interfaces.ManagerEmployeeContractsActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_CURRENT_EMPLOYEE_CONTRACT_ID: {\r\n return {\r\n ...state,\r\n currentEmployeeContractId: action.payload,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { combineReducers } from 'redux';\r\nimport { StoreName } from './storeName';\r\nimport currentUserReducer from './user/reducer';\r\nimport redirectToReducer from './redirect/reducer';\r\nimport loaderReducer from './loader/reducer';\r\nimport sidebarReducer from './sidebar/reducer';\r\nimport userPanelReducer from './userPanel/reducer';\r\nimport expensesReducer from './expenses/reducer';\r\nimport expensesReportsReducer from './reports/reducer';\r\nimport FilesReducer from './files/reducer';\r\nimport NotificationCenter from './notificationCenter/reducer';\r\nimport fileUploadingReducer from './fileUploading/reducer';\r\nimport localizationReducer from './localization/reducer';\r\nimport dataExportingReducer from './dataExporting/reducer';\r\nimport managerEmployeeContractsReducer from './managerEmployeeContracts/reducer';\r\n\r\nconst mainReducer = combineReducers({\r\n [StoreName.CurrentUser]: currentUserReducer,\r\n [StoreName.RedirectTo]: redirectToReducer,\r\n [StoreName.Loader]: loaderReducer,\r\n [StoreName.Sidebar]: sidebarReducer,\r\n [StoreName.UserPanel]: userPanelReducer,\r\n [StoreName.Expenses]: expensesReducer,\r\n [StoreName.Reports]: expensesReportsReducer,\r\n [StoreName.Files]: FilesReducer,\r\n [StoreName.NotificationCenter]: NotificationCenter,\r\n [StoreName.FileUploading]: fileUploadingReducer,\r\n [StoreName.Localization]: localizationReducer,\r\n [StoreName.DataExporting]: dataExportingReducer,\r\n [StoreName.ManagerEmployeeContracts]: managerEmployeeContractsReducer,\r\n});\r\n\r\nexport default mainReducer;\r\n","import { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport default function redirectToReducer(\r\n state: Interfaces.StoreType = '',\r\n action: Interfaces.RedirectToActions = {} as Interfaces.RedirectToActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_REDIRECT_TO: {\r\n return action.payload;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport default function loaderReducer(\r\n state: Interfaces.StoreType = false,\r\n action: Interfaces.LoaderActions = {} as Interfaces.LoaderActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_IS_LOADING: {\r\n return action.payload;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import Utils from '../../shared/shared.utils';\r\nimport { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport default function sidebarReducer(\r\n state: Interfaces.StoreType = !Utils.checkIsMobileBrowser(),\r\n action: Interfaces.SidebarActions = {} as Interfaces.SidebarActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_IS_OPEN: {\r\n return action.payload;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport default function sidebarReducer(\r\n state: Interfaces.StoreType = false,\r\n action: Interfaces.UserPanelActions = {} as Interfaces.UserPanelActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_IS_OPEN: {\r\n return typeof action.payload === 'boolean' ? action.payload : !state;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { applyMiddleware, compose, createStore } from 'redux';\r\nimport thunk, { ThunkMiddleware } from 'redux-thunk';\r\n\r\nimport mainReducer from './mainReducer';\r\nimport { AppActions, AppState } from './interfaces';\r\n\r\nconst enhancers: Array = [];\r\nconst windowIfDefined = typeof window === 'undefined' ? null : (window as any);\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\nif (windowIfDefined?.__REDUX_DEVTOOLS_EXTENSION__ && process.env.NODE_ENV === 'development') {\r\n // eslint-disable-next-line no-underscore-dangle\r\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__());\r\n}\r\n\r\nexport const store = createStore(\r\n mainReducer,\r\n compose(applyMiddleware(thunk as ThunkMiddleware), ...enhancers)\r\n);\r\n","export enum TypeName {\r\n SET_IS_LOADING = 'SET_IS_LOADING',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Loader}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_IS_LOADING]: `${baseTypeName}${TypeName.SET_IS_LOADING}`,\r\n} as const;\r\n","import { ILocaleOption } from 'shared/models/models.dl';\r\nimport type { AppState } from '../interfaces';\r\n\r\nexport const selectIsLoadedLocales = ({ localization }: AppState): boolean => localization.isLoadedLocales;\r\nexport const selectIsErrorLocales = ({ localization }: AppState): boolean => localization.isErrorLocales;\r\nexport const selectLocales = ({ localization }: AppState): ILocaleOption[] | null => localization.locales;\r\nexport const selectIsLoadedLocaleKeys = ({ localization }: AppState): boolean => localization.isLoadedLocaleKeys;\r\nexport const selectIsLoadingLocaleKeys = ({ localization }: AppState): boolean => localization.isLoadingLocaleKeys;\r\nexport const selectIsErrorLocaleKeys = ({ localization }: AppState): boolean => localization.isErrorLocaleKeys;\r\nexport const selectIsErrorLoginLocaleKeys = ({ localization }: AppState): boolean =>\r\n localization.isErrorLoginLocaleKeys;\r\n","export enum TypeName {\r\n SET_IS_LOADED_LOCALES = 'SET_IS_LOADED_LOCALES',\r\n SET_IS_ERROR_LOCALES = 'SET_IS_ERROR_LOCALES',\r\n SET_LOCALES = 'SET_LOCALES',\r\n SET_IS_LOADED_LOCALE_KEYS = 'SET_IS_LOADED_LOCALE_KEYS',\r\n SET_IS_LOADING_LOCALE_KEYS = 'SET_IS_LOADING_LOCALE_KEYS',\r\n SET_IS_ERROR_LOCALE_KEYS = 'SET_IS_ERROR_LOCALE_KEYS',\r\n SET_IS_ERROR_LOGIN_LOCALE_KEYS = 'SET_IS_ERROR_LOGIN_LOCALE_KEYS',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Localization}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_IS_LOADED_LOCALES]: `${baseTypeName}${TypeName.SET_IS_LOADED_LOCALES}`,\r\n [TypeName.SET_IS_ERROR_LOCALES]: `${baseTypeName}${TypeName.SET_IS_ERROR_LOCALES}`,\r\n [TypeName.SET_LOCALES]: `${baseTypeName}${TypeName.SET_LOCALES}`,\r\n [TypeName.SET_IS_LOADED_LOCALE_KEYS]: `${baseTypeName}${TypeName.SET_IS_LOADED_LOCALE_KEYS}`,\r\n [TypeName.SET_IS_LOADING_LOCALE_KEYS]: `${baseTypeName}${TypeName.SET_IS_LOADING_LOCALE_KEYS}`,\r\n [TypeName.SET_IS_ERROR_LOCALE_KEYS]: `${baseTypeName}${TypeName.SET_IS_ERROR_LOCALE_KEYS}`,\r\n [TypeName.SET_IS_ERROR_LOGIN_LOCALE_KEYS]: `${baseTypeName}${TypeName.SET_IS_ERROR_LOGIN_LOCALE_KEYS}`,\r\n} as const;\r\n","export enum TypeName {\r\n SET_CURRENT_EMPLOYEE_CONTRACT_ID = 'SET_CURRENT_EMPLOYEE_CONTRACT_ID',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.ManagerEmployeeContracts}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_CURRENT_EMPLOYEE_CONTRACT_ID]: `${baseTypeName}${TypeName.SET_CURRENT_EMPLOYEE_CONTRACT_ID}`,\r\n} as const;\r\n","export enum TypeName {\r\n SET_IS_OPEN = 'SET_IS_OPEN',\r\n RELOAD_RELATED_DATA = 'RELOAD_RELATED_DATA',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.NotificationCenter}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_IS_OPEN]: `${baseTypeName}${TypeName.SET_IS_OPEN}`,\r\n [TypeName.RELOAD_RELATED_DATA]: `${baseTypeName}${TypeName.RELOAD_RELATED_DATA}`,\r\n} as const;\r\n","export enum TypeName {\r\n SET_REDIRECT_TO = 'SET_REDIRECT_TO',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.RedirectTo}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_REDIRECT_TO]: `${baseTypeName}${TypeName.SET_REDIRECT_TO}`,\r\n} as const;\r\n","import { getInitialPaginatedTableData, GridColumnConfig } from 'shared/configs/grid.config';\r\nimport type { DepartmentViewTableData } from 'shared/models/models.bl';\r\nimport * as Models from 'shared/shared.models';\r\nimport { Types } from './types';\r\nimport Utils from '../../../shared/shared.utils';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nconst initialPaginatedTableData = getInitialPaginatedTableData(\r\n GridColumnConfig.GeographicalViewConfig\r\n);\r\n\r\nexport const defaultFilter: Interfaces.StoreType['filters'] = {\r\n [Models.DE.FiltersTypes.Entities]: [],\r\n [Models.DE.FiltersTypes.DepartmentAs]: [],\r\n [Models.DE.FiltersTypes.DepartmentBs]: [],\r\n [Models.DE.FiltersTypes.DepartmentCs]: [],\r\n};\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n generatedReport: null,\r\n loading: false,\r\n data: [],\r\n headers: null,\r\n filters: defaultFilter,\r\n onlySumRows: [],\r\n paginatedTableData: initialPaginatedTableData,\r\n filtersLoading: false,\r\n chartLoading: false,\r\n chartData: [],\r\n};\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.DepartmentViewActions = {} as Interfaces.DepartmentViewActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_GENERATED_REPORT: {\r\n return { ...state, generatedReport: action.payload };\r\n }\r\n case Types.SET_DATA_LOADING: {\r\n return { ...state, loading: action.payload };\r\n }\r\n case Types.SET_TABLE_DATA: {\r\n const { getRows, getHeaders } = Utils.getCorrectTableDataFromResponse(action.payload);\r\n const data = getRows(state.data);\r\n const headers = getHeaders(state.headers);\r\n return data !== state.data || headers !== state.headers\r\n ? {\r\n ...state,\r\n data,\r\n headers,\r\n onlySumRows: headers?.[0]?.name ? Utils.getOnlySumRows(data, headers[0].name) : [],\r\n }\r\n : state;\r\n }\r\n case Types.SET_TABLE_FILTERS: {\r\n return { ...state, filters: action.payload, filtersLoading: false };\r\n }\r\n case Types.SET_PAGINATED_TABLE_DATA: {\r\n let paginatedTableData = action.payload || initialPaginatedTableData;\r\n if (!paginatedTableData.tableData) {\r\n paginatedTableData = {\r\n ...paginatedTableData,\r\n tableData: initialPaginatedTableData.tableData,\r\n };\r\n }\r\n return {\r\n ...state,\r\n loading: false,\r\n paginatedTableData,\r\n };\r\n }\r\n case Types.SET_FILTERS_LOADING: {\r\n return { ...state, filtersLoading: action.payload };\r\n }\r\n case Types.SET_CHART_LOADING: {\r\n return { ...state, chartLoading: action.payload };\r\n }\r\n case Types.SET_CHART_DATA: {\r\n return { ...state, chartData: action.payload, chartLoading: false };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","export enum TypeName {\r\n SET_GENERATED_REPORT = 'SET_GENERATED_REPORT',\r\n SET_DATA_LOADING = 'SET_DATA_LOADING',\r\n SET_TABLE_DATA = 'SET_TABLE_DATA',\r\n SET_TABLE_FILTERS = 'SET_TABLE_FILTERS',\r\n SET_FILTERS_LOADING = 'SET_FILTERS_LOADING',\r\n SET_PAGINATED_TABLE_DATA = 'SET_PAGINATED_TABLE_DATA',\r\n SET_CHART_LOADING = 'SET_CHART_LOADING',\r\n SET_CHART_DATA = 'SET_CHART_DATA',\r\n}\r\n","import { StoreName } from '../../storeName';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Reports}/${ReportsStoreName.DepartmentView}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_GENERATED_REPORT]: `${baseTypeName}${TypeName.SET_GENERATED_REPORT}`,\r\n [TypeName.SET_DATA_LOADING]: `${baseTypeName}${TypeName.SET_DATA_LOADING}`,\r\n [TypeName.SET_TABLE_DATA]: `${baseTypeName}${TypeName.SET_TABLE_DATA}`,\r\n [TypeName.SET_TABLE_FILTERS]: `${baseTypeName}${TypeName.SET_TABLE_FILTERS}`,\r\n [TypeName.SET_FILTERS_LOADING]: `${baseTypeName}${TypeName.SET_FILTERS_LOADING}`,\r\n [TypeName.SET_PAGINATED_TABLE_DATA]: `${baseTypeName}${TypeName.SET_PAGINATED_TABLE_DATA}`,\r\n [TypeName.SET_CHART_LOADING]: `${baseTypeName}${TypeName.SET_CHART_LOADING}`,\r\n [TypeName.SET_CHART_DATA]: `${baseTypeName}${TypeName.SET_CHART_DATA}`,\r\n} as const;\r\n","export enum TypeName {\r\n SET_GENERATED_REPORT = 'SET_GENERATED_REPORT',\r\n SET_DATA_LOADING = 'SET_DATA_LOADING',\r\n SET_PROVISION_EXPENSE = 'SET_PROVISION_EXPENSE',\r\n SET_TABLE_DATA = 'SET_TABLE_DATA',\r\n SET_PAGINATED_TABLE_DATA = 'SET_PAGINATED_TABLE_DATA',\r\n}\r\n","import { StoreName } from '../../storeName';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Reports}/${ReportsStoreName.EmployeeView}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_GENERATED_REPORT]: `${baseTypeName}${TypeName.SET_GENERATED_REPORT}`,\r\n [TypeName.SET_DATA_LOADING]: `${baseTypeName}${TypeName.SET_DATA_LOADING}`,\r\n [TypeName.SET_TABLE_DATA]: `${baseTypeName}${TypeName.SET_TABLE_DATA}`,\r\n [TypeName.SET_PAGINATED_TABLE_DATA]: `${baseTypeName}${TypeName.SET_PAGINATED_TABLE_DATA}`,\r\n} as const;\r\n","export enum TypeName {\r\n SET_GENERATED_REPORT = 'SET_GENERATED_REPORT',\r\n SET_DATA_LOADING = 'SET_DATA_LOADING',\r\n SET_PROVISION_EXPENSE = 'SET_PROVISION_EXPENSE',\r\n SET_TABLE_DATA = 'SET_TABLE_DATA',\r\n SET_CHART_DATA = 'SET_CHART_DATA',\r\n SET_TABLE_FILTERS = 'SET_TABLE_FILTERS',\r\n SET_FILTERS_LOADING = 'SET_FILTERS_LOADING',\r\n SET_PAGINATED_TABLE_DATA = 'SET_PAGINATED_TABLE_DATA',\r\n SET_CHART_LOADING = 'SET_CHART_LOADING',\r\n}\r\n","import { StoreName } from '../../storeName';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Reports}/${ReportsStoreName.ExpenseOutlookView}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_GENERATED_REPORT]: `${baseTypeName}${TypeName.SET_GENERATED_REPORT}`,\r\n [TypeName.SET_DATA_LOADING]: `${baseTypeName}${TypeName.SET_DATA_LOADING}`,\r\n [TypeName.SET_TABLE_DATA]: `${baseTypeName}${TypeName.SET_TABLE_DATA}`,\r\n [TypeName.SET_CHART_DATA]: `${baseTypeName}${TypeName.SET_CHART_DATA}`,\r\n [TypeName.SET_CHART_LOADING]: `${baseTypeName}${TypeName.SET_CHART_LOADING}`,\r\n [TypeName.SET_TABLE_FILTERS]: `${baseTypeName}${TypeName.SET_TABLE_FILTERS}`,\r\n [TypeName.SET_FILTERS_LOADING]: `${baseTypeName}${TypeName.SET_FILTERS_LOADING}`,\r\n [TypeName.SET_PAGINATED_TABLE_DATA]: `${baseTypeName}${TypeName.SET_PAGINATED_TABLE_DATA}`,\r\n} as const;\r\n","export enum TypeName {\r\n SET_GENERATED_REPORT = 'SET_GENERATED_REPORT',\r\n SET_DATA_LOADING = 'SET_DATA_LOADING',\r\n SET_PROVISION_EXPENSE = 'SET_PROVISION_EXPENSE',\r\n SET_TABLE_DATA = 'SET_TABLE_DATA',\r\n SET_TABLE_FILTERS = 'SET_TABLE_FILTERS',\r\n SET_FILTERS_LOADING = 'SET_FILTERS_LOADING',\r\n SET_PAGINATED_TABLE_DATA = 'SET_PAGINATED_TABLE_DATA',\r\n SET_CHART_LOADING = 'SET_CHART_LOADING',\r\n SET_CHART_DATA = 'SET_CHART_DATA',\r\n}\r\n","import { StoreName } from '../../storeName';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Reports}/${ReportsStoreName.GeographicalView}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_GENERATED_REPORT]: `${baseTypeName}${TypeName.SET_GENERATED_REPORT}`,\r\n [TypeName.SET_DATA_LOADING]: `${baseTypeName}${TypeName.SET_DATA_LOADING}`,\r\n [TypeName.SET_TABLE_DATA]: `${baseTypeName}${TypeName.SET_TABLE_DATA}`,\r\n [TypeName.SET_TABLE_FILTERS]: `${baseTypeName}${TypeName.SET_TABLE_FILTERS}`,\r\n [TypeName.SET_FILTERS_LOADING]: `${baseTypeName}${TypeName.SET_FILTERS_LOADING}`,\r\n [TypeName.SET_PAGINATED_TABLE_DATA]: `${baseTypeName}${TypeName.SET_PAGINATED_TABLE_DATA}`,\r\n [TypeName.SET_CHART_LOADING]: `${baseTypeName}${TypeName.SET_CHART_LOADING}`,\r\n [TypeName.SET_CHART_DATA]: `${baseTypeName}${TypeName.SET_CHART_DATA}`,\r\n} as const;\r\n","export enum TypeName {\r\n SET_GENERATED_REPORT = 'SET_GENERATED_REPORT',\r\n SET_DATA_LOADING = 'SET_DATA_LOADING',\r\n SET_PROVISION_EXPENSE = 'SET_PROVISION_EXPENSE',\r\n SET_TABLE_DATA = 'SET_TABLE_DATA',\r\n SET_CHART_DATA = 'SET_CHART_DATA',\r\n SET_TABLE_FILTERS = 'SET_TABLE_FILTERS',\r\n SET_FILTERS_LOADING = 'SET_FILTERS_LOADING',\r\n SET_PAGINATED_TABLE_DATA = 'SET_PAGINATED_TABLE_DATA',\r\n SET_CHART_LOADING = 'SET_CHART_LOADING',\r\n SET_PIE_CHART_DATA = 'SET_PIE_CHART_DATA',\r\n SET_PIE_CHART_LOADING = 'SET_PIE_CHART_LOADING',\r\n}\r\n","import { StoreName } from '../../storeName';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Reports}/${ReportsStoreName.PlanView}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_GENERATED_REPORT]: `${baseTypeName}${TypeName.SET_GENERATED_REPORT}`,\r\n [TypeName.SET_DATA_LOADING]: `${baseTypeName}${TypeName.SET_DATA_LOADING}`,\r\n [TypeName.SET_TABLE_DATA]: `${baseTypeName}${TypeName.SET_TABLE_DATA}`,\r\n [TypeName.SET_CHART_DATA]: `${baseTypeName}${TypeName.SET_CHART_DATA}`,\r\n [TypeName.SET_CHART_LOADING]: `${baseTypeName}${TypeName.SET_CHART_LOADING}`,\r\n [TypeName.SET_PIE_CHART_DATA]: `${baseTypeName}${TypeName.SET_PIE_CHART_DATA}`,\r\n [TypeName.SET_PIE_CHART_LOADING]: `${baseTypeName}${TypeName.SET_PIE_CHART_LOADING}`,\r\n [TypeName.SET_TABLE_FILTERS]: `${baseTypeName}${TypeName.SET_TABLE_FILTERS}`,\r\n [TypeName.SET_FILTERS_LOADING]: `${baseTypeName}${TypeName.SET_FILTERS_LOADING}`,\r\n [TypeName.SET_PAGINATED_TABLE_DATA]: `${baseTypeName}${TypeName.SET_PAGINATED_TABLE_DATA}`,\r\n} as const;\r\n","import axios from 'axios';\r\nimport ProvisionalExpenseService from 'shared/services/bl/provisionalExpense.service';\r\nimport type { IUploadFileResponse, IProvisionalExpenseChartDataResponse } from 'shared/models/models.bl';\r\nimport { Types } from './types';\r\nimport type { AsyncThunkActionType } from '../../interfaces';\r\nimport type * as Interfaces from './interfaces';\r\nimport summaryActions from '../summaryTotal/actions';\r\n\r\nexport const countProvisionExpenseValueByKey = (\r\n data: IProvisionalExpenseChartDataResponse[]\r\n): Interfaces.StoreType['chartData'] & { total: number } => {\r\n const obj = { plans: {}, locations: {}, dates: {}, total: 0 } as Interfaces.StoreType['chartData'] & {\r\n total: number;\r\n };\r\n\r\n if (!Array.isArray(data)) return obj;\r\n\r\n return data.reduce((acc, { provisionDate: date, location, plan, provisionExpenseValue }) => {\r\n const value = provisionExpenseValue || 0;\r\n const setValue = (accKey: keyof Interfaces.StoreType['chartData'], accDataKey?: string | null) => {\r\n if (accDataKey) {\r\n acc[accKey][accDataKey] = (acc[accKey][accDataKey] || 0) + value;\r\n }\r\n };\r\n setValue('dates', date);\r\n setValue('locations', location);\r\n setValue('plans', plan);\r\n acc.total += value;\r\n return acc;\r\n }, obj);\r\n};\r\n\r\nexport const actions = {\r\n setCalculationResult: (payload: Interfaces.PayloadType['calculationResult']) =>\r\n ({\r\n type: Types.SET_CALCULATION_RESULT,\r\n payload,\r\n } as const),\r\n\r\n setCalculating: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_CALCULATING,\r\n payload,\r\n } as const),\r\n\r\n setFileUploaded: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_FILE_UPLOADED,\r\n payload,\r\n } as const),\r\n\r\n setDataLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_TABLE_DATA_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setChartDataLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_CHART_DATA_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setFiltersLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_FILTERS_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setGeneratedReport: (payload: Interfaces.PayloadType['generatedReport']) =>\r\n ({\r\n type: Types.SET_GENERATED_REPORT,\r\n payload,\r\n } as const),\r\n\r\n setTableData: (payload: Interfaces.PayloadType['paginatedData']) =>\r\n ({\r\n type: Types.SET_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n setChartData: (payload: Interfaces.PayloadType['chartData']) =>\r\n ({\r\n type: Types.SET_CHART_DATA,\r\n payload,\r\n } as const),\r\n\r\n setTableFilters: (payload: Interfaces.PayloadType['filters']) =>\r\n ({\r\n type: Types.SET_TABLE_FILTERS,\r\n payload,\r\n } as const),\r\n\r\n setTotalProvisionByFilter: (payload: Interfaces.PayloadType['totalProvisionByFilter']) =>\r\n ({\r\n type: Types.SET_TOTAL_PROVISION_BY_FILTER,\r\n payload,\r\n } as const),\r\n\r\n resetTableData: () =>\r\n ({\r\n type: Types.RESET_TABLE_DATA,\r\n } as const),\r\n};\r\n\r\nconst thunks = {\r\n getTableData:\r\n (...params: Parameters): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n const [uid, ...rest] = params;\r\n const reportUId = getState().reports.provisionalExpense.generatedReport || uid;\r\n try {\r\n dispatch(actions.setDataLoading(true));\r\n const responseData = await ProvisionalExpenseService.getTableData(reportUId, ...rest);\r\n dispatch(actions.setTableData(responseData));\r\n dispatch(actions.setGeneratedReport(reportUId));\r\n } catch (err) {\r\n // INFO: for now request can be canceled by next same request only so we no need to change loading state\r\n if (!axios.isCancel(err)) dispatch(actions.setDataLoading(false));\r\n }\r\n },\r\n\r\n getChartData:\r\n (...params: Parameters): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n const [uid, filter, ...rest] = params;\r\n const reportUId = getState().reports.provisionalExpense.generatedReport || uid;\r\n try {\r\n dispatch(actions.setChartDataLoading(true));\r\n const responseData = await ProvisionalExpenseService.getChartData(reportUId, filter, ...rest);\r\n const { total, ...chartData } = countProvisionExpenseValueByKey(responseData);\r\n dispatch(\r\n actions.setTotalProvisionByFilter({\r\n dateFilter: filter?.provisionDate || '',\r\n valueByAllFilters: total,\r\n })\r\n );\r\n dispatch(actions.setGeneratedReport(reportUId));\r\n dispatch(actions.setChartData(chartData));\r\n } catch (err) {\r\n // INFO: for now request can be canceled by next same request only so we no need to change loading state\r\n if (!axios.isCancel(err)) dispatch(actions.setChartDataLoading(false));\r\n }\r\n },\r\n\r\n getFilters:\r\n (reportUId: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setFiltersLoading(true));\r\n const responseData = await ProvisionalExpenseService.getFilters(reportUId);\r\n dispatch(actions.setTableFilters(responseData));\r\n dispatch(actions.setGeneratedReport(reportUId));\r\n } catch {\r\n dispatch(actions.setFiltersLoading(false));\r\n }\r\n },\r\n\r\n getTableDataAndChart:\r\n (...params: Parameters): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n const [reportUId, requestData] = params;\r\n const { provisionDate, location, plan } = requestData || {};\r\n dispatch(thunks.getChartData(reportUId, { provisionDate, location, plan }));\r\n dispatch(thunks.getTableData(...params));\r\n },\r\n\r\n getAllData:\r\n (...params: Parameters): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n dispatch(summaryActions.getDataForFinalization(params[0]));\r\n dispatch(thunks.getFilters(params[0]));\r\n dispatch(thunks.getTableDataAndChart(...params));\r\n },\r\n\r\n calculate:\r\n (reportUId: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setCalculating(true));\r\n const responseData = await ProvisionalExpenseService.calculate(reportUId);\r\n dispatch(actions.setCalculationResult(responseData));\r\n } catch {\r\n dispatch(actions.setCalculating(false));\r\n }\r\n },\r\n\r\n calculateThenFetchTableAndChart:\r\n (...params: Parameters): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setCalculating(true));\r\n const responseData = await ProvisionalExpenseService.calculate(params[0]);\r\n dispatch(actions.setCalculationResult(responseData));\r\n dispatch(summaryActions.getDataForFinalization(params[0]));\r\n dispatch(thunks.getTableDataAndChart(...params));\r\n } catch {\r\n dispatch(actions.setCalculating(false));\r\n }\r\n },\r\n\r\n uploadFile:\r\n (...params: Parameters): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n const uploadResult = await ProvisionalExpenseService.uploadFile(...params);\r\n dispatch(actions.setFileUploaded(true));\r\n dispatch(thunks.getAllData(params[1]));\r\n return uploadResult;\r\n },\r\n\r\n deleteData: (): AsyncThunkActionType => async (dispatch, getState) => {\r\n const { generatedReport } = getState().reports.provisionalExpense;\r\n try {\r\n if (!generatedReport) throw new Error();\r\n await ProvisionalExpenseService.delete(generatedReport);\r\n dispatch(actions.resetTableData());\r\n dispatch(summaryActions.getDataForFinalization(generatedReport));\r\n } catch (error) {\r\n await Promise.reject(error);\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import type { IProvisionalExpenseTableDataResponse } from 'shared/models/models.bl';\r\nimport { getInitialPaginatedTableData, GridColumnConfig } from 'shared/configs/grid.config';\r\nimport type { SelectOption } from 'shared/models/models.dl';\r\nimport type * as Interfaces from './interfaces';\r\nimport Utils from '../../../shared/shared.utils';\r\nimport { Types } from './types';\r\n\r\nconst getDefaultFilter = (text: SelectOption['text']): SelectOption => ({ id: '', text });\r\n\r\nexport const initialProvisionExpenseFilters: Interfaces.StoreType['filters'] = {\r\n dates: [getDefaultFilter('SbpExpensesReports.ProvisionalExpensePanel.ProvisionDateDropdown.AllOptionLabel')],\r\n locations: [getDefaultFilter('SbpExpensesReports.ProvisionalExpensePanel.PlanDropdown.AllOptionLabel')],\r\n schemes: [getDefaultFilter('SbpExpensesReports.ProvisionalExpensePanel.LocationDropdown.AllOptionLabel')],\r\n};\r\n\r\nconst initialPaginatedTableData = getInitialPaginatedTableData(\r\n GridColumnConfig.ProvisionalExpenseConfig\r\n);\r\n\r\nconst initialState: Interfaces.StoreType = {\r\n generatedReport: null,\r\n dataLoading: false,\r\n filtersLoading: false,\r\n calculating: false,\r\n calculationResult: null,\r\n fileUploaded: false,\r\n paginatedData: initialPaginatedTableData,\r\n filters: initialProvisionExpenseFilters,\r\n totalProvisionByFilter: null,\r\n chartData: { plans: {}, locations: {}, dates: {} },\r\n chartDataLoading: false,\r\n};\r\n\r\nexport default function reducer(\r\n state: Interfaces.StoreType = initialState,\r\n action: Interfaces.ProvisionalExpenseActions = {} as Interfaces.ProvisionalExpenseActions\r\n): Interfaces.StoreType {\r\n switch (action.type) {\r\n case Types.SET_FILE_UPLOADED: {\r\n return { ...state, fileUploaded: action.payload };\r\n }\r\n case Types.SET_GENERATED_REPORT: {\r\n return { ...state, generatedReport: action.payload };\r\n }\r\n case Types.SET_TABLE_DATA_LOADING: {\r\n return { ...state, dataLoading: action.payload };\r\n }\r\n case Types.SET_FILTERS_LOADING: {\r\n return { ...state, filtersLoading: action.payload };\r\n }\r\n case Types.SET_CALCULATING: {\r\n return { ...state, calculating: action.payload };\r\n }\r\n case Types.SET_CALCULATION_RESULT: {\r\n return { ...state, calculationResult: action.payload, calculating: false };\r\n }\r\n case Types.SET_TABLE_DATA: {\r\n let paginatedData = action.payload || initialPaginatedTableData;\r\n if (!paginatedData.tableData) {\r\n paginatedData = {\r\n ...paginatedData,\r\n tableData: initialPaginatedTableData.tableData,\r\n };\r\n }\r\n return {\r\n ...state,\r\n dataLoading: false,\r\n paginatedData,\r\n fileUploaded: paginatedData.totalCount ? true : state.fileUploaded,\r\n };\r\n }\r\n case Types.SET_CHART_DATA: {\r\n return {\r\n ...state,\r\n chartDataLoading: false,\r\n chartData: action.payload,\r\n };\r\n }\r\n case Types.SET_CHART_DATA_LOADING: {\r\n return {\r\n ...state,\r\n chartDataLoading: action.payload,\r\n };\r\n }\r\n case Types.SET_TABLE_FILTERS: {\r\n const dates = Utils.getCorrectTableFiltersFromResponse(action.payload?.dates)(state.filters.dates);\r\n const locations = Utils.getCorrectTableFiltersFromResponse(action.payload?.locations)(state.filters.locations);\r\n const schemes = Utils.getCorrectTableFiltersFromResponse(action.payload?.schemes)(state.filters.schemes);\r\n const filters =\r\n dates !== state.filters.dates || locations !== state.filters.locations || schemes !== state.filters.schemes\r\n ? {\r\n dates,\r\n locations,\r\n schemes,\r\n }\r\n : state.filters;\r\n return { ...state, filters, filtersLoading: false };\r\n }\r\n case Types.SET_TOTAL_PROVISION_BY_FILTER: {\r\n return {\r\n ...state,\r\n totalProvisionByFilter: action.payload,\r\n };\r\n }\r\n case Types.RESET_TABLE_DATA: {\r\n return {\r\n ...initialState,\r\n generatedReport: state.generatedReport,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import type { AppState } from '../../interfaces';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport type { StoreType } from './interfaces';\r\n\r\nconst currentStoreName = ReportsStoreName.ProvisionalExpense;\r\n\r\nexport const selectDataLoading = ({ reports }: AppState): StoreType['dataLoading'] =>\r\n reports[currentStoreName].dataLoading;\r\n\r\nexport const selectFiltersLoading = ({ reports }: AppState): StoreType['filtersLoading'] =>\r\n reports[currentStoreName].filtersLoading;\r\n\r\nexport const selectGeneratedReport = ({ reports }: AppState): StoreType['generatedReport'] =>\r\n reports[currentStoreName].generatedReport;\r\n\r\nexport const selectCalculationResult = ({ reports }: AppState): StoreType['calculationResult'] =>\r\n reports[currentStoreName].calculationResult;\r\n\r\nexport const selectCalculating = ({ reports }: AppState): StoreType['calculating'] =>\r\n reports[currentStoreName].calculating;\r\n\r\nexport const selectFileUploaded = ({ reports }: AppState): StoreType['fileUploaded'] =>\r\n reports[currentStoreName].fileUploaded;\r\n\r\nexport const selectTableFilters = ({ reports }: AppState): StoreType['filters'] => reports[currentStoreName].filters;\r\n\r\nexport const selectTableData = ({ reports }: AppState): StoreType['paginatedData'] =>\r\n reports[currentStoreName].paginatedData;\r\n\r\nexport const selectTotalProvisionByFilter = ({ reports }: AppState): StoreType['totalProvisionByFilter'] =>\r\n reports[currentStoreName].totalProvisionByFilter;\r\n\r\nexport const selectChartData = ({ reports }: AppState): StoreType['chartData'] => reports[currentStoreName].chartData;\r\n\r\nexport const selectChartDataLoading = ({ reports }: AppState): StoreType['chartDataLoading'] =>\r\n reports[currentStoreName].chartDataLoading;\r\n","export enum TypeName {\r\n SET_GENERATED_REPORT = 'SET_GENERATED_REPORT',\r\n SET_TABLE_DATA_LOADING = 'SET_TABLE_DATA_LOADING',\r\n SET_FILTERS_LOADING = 'SET_FILTERS_LOADING',\r\n SET_CALCULATION_RESULT = 'SET_CALCULATION_RESULT',\r\n SET_CALCULATING = 'SET_CALCULATING',\r\n SET_TABLE_DATA = 'SET_TABLE_DATA',\r\n SET_TABLE_FILTERS = 'SET_TABLE_FILTERS',\r\n SET_FILE_UPLOADED = 'SET_FILE_UPLOADED',\r\n SET_TOTAL_PROVISION_BY_FILTER = 'SET_TOTAL_PROVISION_BY_FILTER',\r\n RESET_TABLE_DATA = 'RESET_TABLE_DATA',\r\n SET_CHART_DATA_LOADING = 'SET_CHART_DATA_LOADING',\r\n SET_CHART_DATA = 'SET_CHART_DATA',\r\n}\r\n","import { StoreName } from '../../storeName';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Reports}/${ReportsStoreName.ProvisionalExpense}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_GENERATED_REPORT]: `${baseTypeName}${TypeName.SET_GENERATED_REPORT}`,\r\n [TypeName.SET_TABLE_DATA_LOADING]: `${baseTypeName}${TypeName.SET_TABLE_DATA_LOADING}`,\r\n [TypeName.SET_FILTERS_LOADING]: `${baseTypeName}${TypeName.SET_FILTERS_LOADING}`,\r\n [TypeName.SET_CALCULATION_RESULT]: `${baseTypeName}${TypeName.SET_CALCULATION_RESULT}`,\r\n [TypeName.SET_CALCULATING]: `${baseTypeName}${TypeName.SET_CALCULATING}`,\r\n [TypeName.SET_TABLE_DATA]: `${baseTypeName}${TypeName.SET_TABLE_DATA}`,\r\n [TypeName.SET_TABLE_FILTERS]: `${baseTypeName}${TypeName.SET_TABLE_FILTERS}`,\r\n [TypeName.SET_FILE_UPLOADED]: `${baseTypeName}${TypeName.SET_FILE_UPLOADED}`,\r\n [TypeName.SET_TOTAL_PROVISION_BY_FILTER]: `${baseTypeName}${TypeName.SET_TOTAL_PROVISION_BY_FILTER}`,\r\n [TypeName.RESET_TABLE_DATA]: `${baseTypeName}${TypeName.RESET_TABLE_DATA}`,\r\n [TypeName.SET_CHART_DATA_LOADING]: `${baseTypeName}${TypeName.SET_CHART_DATA_LOADING}`,\r\n [TypeName.SET_CHART_DATA]: `${baseTypeName}${TypeName.SET_CHART_DATA}`,\r\n} as const;\r\n","export enum ReportsStoreName {\r\n SummaryTotal = 'summaryTotal',\r\n DepartmentView = 'departmentView',\r\n EmployeeView = 'employeeView',\r\n GeographicalView = 'geographicalView',\r\n PlanView = 'planView',\r\n ProvisionalExpense = 'provisionalExpense',\r\n TrueUp = 'trueUp',\r\n ExpenseOutlookView = 'expenseOutlookView',\r\n}\r\n","import axios from 'axios';\r\nimport SBPExpensesReports from 'shared/services/bl/expensesReports.service';\r\nimport { Types } from './types';\r\nimport type { AsyncThunkActionType } from '../../interfaces';\r\nimport type * as Interfaces from './interfaces';\r\nimport Services from '../../../shared/shared.services';\r\n\r\nexport const actions = {\r\n setDataLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_DATA_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setGeneratedReport: (payload: Interfaces.PayloadType['generatedReport']) =>\r\n ({\r\n type: Types.SET_GENERATED_REPORT,\r\n payload,\r\n } as const),\r\n\r\n setTableFilters: (payload: Interfaces.PayloadType['filters']) =>\r\n ({\r\n type: Types.SET_TABLE_FILTERS,\r\n payload,\r\n } as const),\r\n\r\n recalculateTotals: (payload: Interfaces.PayloadType['recalculateTotals']) =>\r\n ({\r\n type: Types.RECALCULATE_TOTALS,\r\n payload,\r\n } as const),\r\n\r\n setDataForFinalization: (payload: Interfaces.PayloadType['dataForFinalization']) =>\r\n ({\r\n type: Types.SET_DATA_FOR_FINALIZATION,\r\n payload,\r\n } as const),\r\n\r\n setPaginatedTableData: (payload: Interfaces.PayloadType['paginatedTableData']) =>\r\n ({\r\n type: Types.SET_PAGINATED_TABLE_DATA,\r\n payload,\r\n } as const),\r\n\r\n setFiltersLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_FILTERS_LOADING,\r\n payload,\r\n } as const),\r\n\r\n setChartLoading: (payload: Interfaces.PayloadType['loading']) =>\r\n ({\r\n type: Types.SET_CHART_LOADING,\r\n payload,\r\n } as const),\r\n setChart: (payload: Interfaces.PayloadType['chartData']) =>\r\n ({\r\n type: Types.SET_CHART_DATA,\r\n payload,\r\n } as const),\r\n};\r\n\r\nexport const thunks = {\r\n getFilters:\r\n (reportTimeStamp: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setFiltersLoading(true));\r\n const responseData = await SBPExpensesReports.getSummaryTotalFilters(reportTimeStamp);\r\n dispatch(actions.setTableFilters(responseData));\r\n dispatch(actions.setGeneratedReport(reportTimeStamp));\r\n return null;\r\n } catch {\r\n dispatch(actions.setFiltersLoading(false));\r\n return null;\r\n }\r\n },\r\n\r\n getDataForFinalization:\r\n (reportTimeStamp: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n const responseData = await SBPExpensesReports.getFinalizationData(reportTimeStamp);\r\n dispatch(actions.setDataForFinalization(responseData));\r\n return null;\r\n } catch {\r\n return null;\r\n }\r\n },\r\n getChart:\r\n (reportUId: string, filter: string): AsyncThunkActionType =>\r\n async (dispatch) => {\r\n try {\r\n dispatch(actions.setChartLoading(true));\r\n const responseData = await Services.BL.SBPExpensesReports.getSummaryTotalChart(reportUId, filter);\r\n\r\n dispatch(actions.setChart(responseData));\r\n return null;\r\n } catch {\r\n dispatch(actions.setChartLoading(false));\r\n return null;\r\n }\r\n },\r\n\r\n getPaginatedData:\r\n (...params: Parameters): AsyncThunkActionType =>\r\n async (dispatch, getState) => {\r\n const [uid, ...rest] = params;\r\n const reportUId = getState().reports.summaryTotal.generatedReport || uid;\r\n try {\r\n dispatch(actions.setDataLoading(true));\r\n const responseData = await SBPExpensesReports.getSummaryTotalPaginatedTableData(reportUId, ...rest);\r\n dispatch(actions.setPaginatedTableData(responseData));\r\n dispatch(actions.setGeneratedReport(params[0]));\r\n } catch (err) {\r\n // INFO: for now request can be canceled by next same request only so we no need to change loading state\r\n if (!axios.isCancel(err)) dispatch(actions.setDataLoading(false));\r\n }\r\n },\r\n};\r\n\r\nexport default {\r\n ...actions,\r\n ...thunks,\r\n};\r\n","import Utils from 'shared/shared.utils';\r\nimport { ChartStatus } from 'shared/models/enums.dl';\r\nimport type * as Interfaces from './interfaces';\r\n\r\ntype GetTotalExpensesReturnType = Pick;\r\n\r\nconst defaultBigNumber = 999999999; // to separate not appropriate dates\r\n\r\nexport const getYearMonthForCompare = (date: string | Date): { yearNumber: number; monthNumber: number } => {\r\n const value: Date = date instanceof Date ? date : new Date(date);\r\n return Utils.formatDate.checkIsDate(value)\r\n ? { yearNumber: value.getFullYear(), monthNumber: value.getMonth() }\r\n : { yearNumber: defaultBigNumber, monthNumber: defaultBigNumber };\r\n};\r\n\r\nexport const isCurrentYearAndBeforeMonth = (date: Date | string, today: Date | string): boolean => {\r\n const { yearNumber: currentYear, monthNumber: currentMonth } = getYearMonthForCompare(date);\r\n const { yearNumber: todayYear, monthNumber: todayMonth } = getYearMonthForCompare(today);\r\n return currentYear === todayYear && currentMonth < todayMonth;\r\n};\r\n\r\nconst getCurrentMonthYearStr = (date: string | Date, longMonth?: boolean): string =>\r\n Utils.formatDate.dateFormatter(\r\n date,\r\n !longMonth ? Utils.formatDate.DateFormat.MonthYear : Utils.formatDate.DateFormat.FullYearFullMonth\r\n );\r\n\r\n// Aug 2020 -> {{Common.Month.Aug}} 2020\r\nconst convertShortMonthYearStrToLocalizationMonthYearKey = (shortDateStr: string): string => {\r\n const [month, year] = shortDateStr.split(' ');\r\n return `{{Common.Month.${month}}} ${year}`;\r\n};\r\n\r\n// August 2020 -> {{Common.Month.August}} 2020\r\nconst convertLongMonthYearStrToLocalizationMonthYearKey = (longDateStr: string): string => {\r\n const [month, year] = longDateStr.split(' ');\r\n return `{{Common.Month.FullName.${month}}} ${year}`;\r\n};\r\n\r\n// {{Common.Month.Aug}} 2020 -> Aug 2020\r\nconst convertLocalizationMonthYearKeyToShortMonthYearStr = (localizationMonthYearKey: string): string =>\r\n localizationMonthYearKey.replace(/^{{Common.Month.(.+)}} (\\d{4})$/, '$1 $2');\r\n\r\nexport const currentMontYearStr = {\r\n get today(): Date {\r\n return new Date();\r\n },\r\n get currentShortMonthYear(): string {\r\n return getCurrentMonthYearStr(this.today);\r\n },\r\n get currentLongMonthYear(): string {\r\n return getCurrentMonthYearStr(this.today, true);\r\n },\r\n get currentShortMonthYearLocalizationKey(): string {\r\n return convertShortMonthYearStrToLocalizationMonthYearKey(this.currentShortMonthYear);\r\n },\r\n get currentLongMonthYearLocalizationKey(): string {\r\n return convertLongMonthYearStrToLocalizationMonthYearKey(this.currentLongMonthYear);\r\n },\r\n};\r\n\r\nexport const getTotalExpensesFromChartData = (data: Interfaces.StoreType['chartData']): GetTotalExpensesReturnType => {\r\n const vestedData = data.find((item) => item.status === ChartStatus.Vested);\r\n const result: GetTotalExpensesReturnType = {\r\n currentMonthExpense: 0,\r\n ytdExpense: 0,\r\n };\r\n\r\n if (!vestedData) return result;\r\n\r\n result.currentMonthExpense =\r\n +vestedData.data[currentMontYearStr.currentShortMonthYearLocalizationKey as keyof typeof vestedData] || 0;\r\n\r\n result.ytdExpense = Object.entries(vestedData.data).reduce((acc, [localizationKey, value]) => {\r\n if (\r\n value &&\r\n isCurrentYearAndBeforeMonth(\r\n convertLocalizationMonthYearKeyToShortMonthYearStr(localizationKey),\r\n currentMontYearStr.today\r\n )\r\n ) {\r\n acc += value;\r\n }\r\n return acc;\r\n }, result.currentMonthExpense);\r\n\r\n return result;\r\n};\r\n\r\nconst getValueFromDateValue = (dateValue: string | null = ''): number => {\r\n if (!dateValue) return 0;\r\n const [date, value = ''] = dateValue.split('##');\r\n if (!date || !value) return 0;\r\n const numberValue = +value;\r\n return numberValue || 0;\r\n};\r\n\r\nexport const getValueFromDateValues = (dateValues: string | string[] | null): number => {\r\n if (Array.isArray(dateValues)) {\r\n return dateValues.reduce((acc: number, current) => acc + getValueFromDateValue(current), 0);\r\n }\r\n return getValueFromDateValue(dateValues);\r\n};\r\n","import type { AppState } from '../../interfaces';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport type { StoreType } from './interfaces';\r\n\r\nconst currentStoreName = ReportsStoreName.SummaryTotal;\r\n\r\nexport const selectDataLoading = ({ reports }: AppState): StoreType['loading'] => reports[currentStoreName].loading;\r\n\r\nexport const selectGeneratedReport = ({ reports }: AppState): StoreType['generatedReport'] =>\r\n reports.summaryTotal.generatedReport;\r\n\r\nexport const selectTableFilters = ({ reports }: AppState): StoreType['filters'] => reports[currentStoreName].filters;\r\n\r\nexport const selectTableHeaders = ({ reports }: AppState): StoreType['headers'] => reports[currentStoreName].headers;\r\n\r\nexport const selectCurrentMonthExpense = ({ reports }: AppState): StoreType['currentMonthExpense'] =>\r\n reports[currentStoreName].currentMonthExpense;\r\n\r\nexport const selectYtdExpense = ({ reports }: AppState): StoreType['ytdExpense'] =>\r\n reports[currentStoreName].ytdExpense;\r\n\r\nexport const selectOnlySumRows = ({ reports }: AppState): StoreType['onlySumRows'] =>\r\n reports[currentStoreName].onlySumRows;\r\n\r\nexport const selectDataForFinalization = ({ reports }: AppState): StoreType['dataForFinalization'] =>\r\n reports[currentStoreName].dataForFinalization;\r\n\r\nexport const selectPaginatedTableData = ({ reports }: AppState): StoreType['paginatedTableData'] =>\r\n reports[currentStoreName].paginatedTableData;\r\n\r\nexport const selectFiltersLoading = ({ reports }: AppState): StoreType['filtersLoading'] =>\r\n reports[currentStoreName].filtersLoading;\r\n\r\nexport const selectChartLoading = ({ reports }: AppState): StoreType['chartLoading'] =>\r\n reports[currentStoreName].chartLoading;\r\n\r\nexport const selectChartData = ({ reports }: AppState): StoreType['chartData'] => reports[currentStoreName].chartData;\r\n","export enum TypeName {\r\n SET_GENERATED_REPORT = 'SET_GENERATED_REPORT',\r\n SET_DATA_LOADING = 'SET_DATA_LOADING',\r\n SET_TABLE_FILTERS = 'SET_TABLE_FILTERS',\r\n RECALCULATE_TOTALS = 'RECALCULATE_TOTALS',\r\n SET_DATA_FOR_FINALIZATION = 'SET_DATA_FOR_FINALIZATION',\r\n SET_FILTERS_LOADING = 'SET_FILTERS_LOADING',\r\n SET_PAGINATED_TABLE_DATA = 'SET_PAGINATED_TABLE_DATA',\r\n SET_CHART_LOADING = 'SET_CHART_LOADING',\r\n SET_CHART_DATA = 'SET_CHART_DATA',\r\n}\r\n","import { StoreName } from '../../storeName';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Reports}/${ReportsStoreName.SummaryTotal}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_GENERATED_REPORT]: `${baseTypeName}${TypeName.SET_GENERATED_REPORT}`,\r\n [TypeName.SET_DATA_LOADING]: `${baseTypeName}${TypeName.SET_DATA_LOADING}`,\r\n [TypeName.SET_TABLE_FILTERS]: `${baseTypeName}${TypeName.SET_TABLE_FILTERS}`,\r\n [TypeName.RECALCULATE_TOTALS]: `${baseTypeName}${TypeName.RECALCULATE_TOTALS}`,\r\n [TypeName.SET_DATA_FOR_FINALIZATION]: `${baseTypeName}${TypeName.SET_DATA_FOR_FINALIZATION}`,\r\n [TypeName.SET_FILTERS_LOADING]: `${baseTypeName}${TypeName.SET_FILTERS_LOADING}`,\r\n [TypeName.SET_PAGINATED_TABLE_DATA]: `${baseTypeName}${TypeName.SET_PAGINATED_TABLE_DATA}`,\r\n [TypeName.SET_CHART_LOADING]: `${baseTypeName}${TypeName.SET_CHART_LOADING}`,\r\n [TypeName.SET_CHART_DATA]: `${baseTypeName}${TypeName.SET_CHART_DATA}`,\r\n} as const;\r\n","export enum TypeName {\r\n SET_LOADING = 'SET_LOADING',\r\n SET_CALCULATING = 'SET_CALCULATING',\r\n SET_IS_CALCULATION_COMPLETED = 'SET_IS_CALCULATION_COMPLETED',\r\n SET_INFO_DATA = 'SET_INFO_DATA',\r\n SET_TABLE_DATA = 'SET_TABLE_DATA',\r\n SET_NEW_REPORT_TABLE_DATA = 'SET_NEW_REPORT_TABLE_DATA',\r\n SET_PREVIOUS_REPORT_TABLE_DATA = 'SET_PREVIOUS_REPORT_TABLE_DATA',\r\n RESET_STATE_DATA = 'RESET_STATE_DATA',\r\n SET_FILTERING = 'SET_FILTERING',\r\n}\r\n","import { StoreName } from '../../storeName';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Reports}/${ReportsStoreName.TrueUp}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_LOADING]: `${baseTypeName}${TypeName.SET_LOADING}`,\r\n [TypeName.SET_CALCULATING]: `${baseTypeName}${TypeName.SET_CALCULATING}`,\r\n [TypeName.SET_IS_CALCULATION_COMPLETED]: `${baseTypeName}${TypeName.SET_IS_CALCULATION_COMPLETED}`,\r\n [TypeName.SET_INFO_DATA]: `${baseTypeName}${TypeName.SET_INFO_DATA}`,\r\n [TypeName.SET_TABLE_DATA]: `${baseTypeName}${TypeName.SET_TABLE_DATA}`,\r\n [TypeName.SET_NEW_REPORT_TABLE_DATA]: `${baseTypeName}${TypeName.SET_NEW_REPORT_TABLE_DATA}`,\r\n [TypeName.SET_PREVIOUS_REPORT_TABLE_DATA]: `${baseTypeName}${TypeName.SET_PREVIOUS_REPORT_TABLE_DATA}`,\r\n [TypeName.RESET_STATE_DATA]: `${baseTypeName}${TypeName.RESET_STATE_DATA}`,\r\n [TypeName.SET_FILTERING]: `${baseTypeName}${TypeName.SET_FILTERING}`,\r\n} as const;\r\n","export enum TypeName {\r\n RESET_REPORTS_STATE = 'RESET_REPORTS_STATE',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.Reports}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.RESET_REPORTS_STATE]: `${baseTypeName}${TypeName.RESET_REPORTS_STATE}`,\r\n} as const;\r\n","import type { AppState } from '../interfaces';\r\nimport type { StoreType } from './interfaces';\r\n\r\nexport const selectGlobalRedirectTo = ({ redirectTo }: AppState): StoreType => redirectTo;\r\n","import type { AppState } from '../interfaces';\r\nimport type { StoreType } from './interfaces';\r\n\r\nexport const selectStatus = ({ expenses }: AppState): StoreType['status'] => expenses.status;\r\n\r\nexport const selectStatusLoading = ({ expenses }: AppState): StoreType['statusLoading'] => expenses.statusLoading;\r\n\r\nexport const selectValidationData = ({ expenses }: AppState): StoreType['validationData'] => expenses.validationData;\r\n\r\nexport const selectIsCancel = ({ expenses }: AppState): StoreType['isCancel'] => expenses.isCancel;\r\n\r\nexport const selectProgressData = ({ expenses }: AppState): StoreType['reportProgressData'] =>\r\n expenses.reportProgressData;\r\n","import type { AppState } from '../../interfaces';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport type { StoreType } from './interfaces';\r\n\r\nconst currentStoreName = ReportsStoreName.DepartmentView;\r\n\r\nexport const selectDataLoading = ({ reports }: AppState): StoreType['loading'] => reports[currentStoreName].loading;\r\n\r\nexport const selectGeneratedReport = ({ reports }: AppState): StoreType['generatedReport'] =>\r\n reports[currentStoreName].generatedReport;\r\n\r\nexport const selectTableFilters = ({ reports }: AppState): StoreType['filters'] => reports[currentStoreName].filters;\r\n\r\nexport const selectTableData = ({ reports }: AppState): StoreType['data'] => reports[currentStoreName].data;\r\n\r\nexport const selectTableHeaders = ({ reports }: AppState): StoreType['headers'] => reports[currentStoreName].headers;\r\n\r\nexport const selectOnlySumRows = ({ reports }: AppState): StoreType['onlySumRows'] =>\r\n reports[currentStoreName].onlySumRows;\r\n\r\nexport const selectPaginatedTableData = ({ reports }: AppState): StoreType['paginatedTableData'] =>\r\n reports[currentStoreName].paginatedTableData;\r\n\r\nexport const selectFiltersLoading = ({ reports }: AppState): StoreType['filtersLoading'] =>\r\n reports[currentStoreName].filtersLoading;\r\n\r\nexport const selectChartLoading = ({ reports }: AppState): StoreType['chartLoading'] =>\r\n reports[currentStoreName].chartLoading;\r\n\r\nexport const selectChartData = ({ reports }: AppState): StoreType['chartData'] => reports[currentStoreName].chartData;\r\n","import type { AppState } from '../../interfaces';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport type { StoreType } from './interfaces';\r\n\r\nconst currentStoreName = ReportsStoreName.EmployeeView;\r\n\r\nexport const selectDataLoading = ({ reports }: AppState): StoreType['loading'] => reports[currentStoreName].loading;\r\n\r\nexport const selectGeneratedReport = ({ reports }: AppState): StoreType['generatedReport'] =>\r\n reports[currentStoreName].generatedReport;\r\n\r\nexport const selectTableData = ({ reports }: AppState): StoreType['data'] => reports[currentStoreName].data;\r\n\r\nexport const selectTableHeaders = ({ reports }: AppState): StoreType['headers'] => reports[currentStoreName].headers;\r\n\r\nexport const selectOnlySumRows = ({ reports }: AppState): StoreType['onlySumRows'] =>\r\n reports[currentStoreName].onlySumRows;\r\n\r\nexport const selectPaginatedTableData = ({ reports }: AppState): StoreType['paginatedTableData'] =>\r\n reports[currentStoreName].paginatedTableData;\r\n","import type { AppState } from '../../interfaces';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport type { StoreType } from './interfaces';\r\n\r\nconst currentStoreName = ReportsStoreName.GeographicalView;\r\n\r\nexport const selectDataLoading = ({ reports }: AppState): StoreType['loading'] => reports[currentStoreName].loading;\r\n\r\nexport const selectGeneratedReport = ({ reports }: AppState): StoreType['generatedReport'] =>\r\n reports[currentStoreName].generatedReport;\r\n\r\nexport const selectTableFilters = ({ reports }: AppState): StoreType['filters'] => reports[currentStoreName].filters;\r\n\r\nexport const selectTableData = ({ reports }: AppState): StoreType['data'] => reports[currentStoreName].data;\r\n\r\nexport const selectTableHeaders = ({ reports }: AppState): StoreType['headers'] => reports[currentStoreName].headers;\r\n\r\nexport const selectOnlySumRows = ({ reports }: AppState): StoreType['onlySumRows'] =>\r\n reports[currentStoreName].onlySumRows;\r\n\r\nexport const selectPaginatedTableData = ({ reports }: AppState): StoreType['paginatedTableData'] =>\r\n reports[currentStoreName].paginatedTableData;\r\n\r\nexport const selectFiltersLoading = ({ reports }: AppState): StoreType['filtersLoading'] =>\r\n reports[currentStoreName].filtersLoading;\r\n\r\nexport const selectChartLoading = ({ reports }: AppState): StoreType['chartLoading'] =>\r\n reports[currentStoreName].chartLoading;\r\n\r\nexport const selectChartData = ({ reports }: AppState): StoreType['chartData'] => reports[currentStoreName].chartData;\r\n","import type { AppState } from '../../interfaces';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport type { StoreType } from './interfaces';\r\n\r\nconst currentStoreName = ReportsStoreName.PlanView;\r\n\r\nexport const selectDataLoading = ({ reports }: AppState): StoreType['loading'] => reports[currentStoreName].loading;\r\n\r\nexport const selectGeneratedReport = ({ reports }: AppState): StoreType['generatedReport'] =>\r\n reports[currentStoreName].generatedReport;\r\n\r\nexport const selectTableFilters = ({ reports }: AppState): StoreType['filters'] => reports[currentStoreName].filters;\r\n\r\nexport const selectTableData = ({ reports }: AppState): StoreType['data'] => reports[currentStoreName].data;\r\n\r\nexport const selectTableHeaders = ({ reports }: AppState): StoreType['headers'] => reports[currentStoreName].headers;\r\n\r\nexport const selectChartData = ({ reports }: AppState): StoreType['chartData'] => reports[currentStoreName].chartData;\r\n\r\nexport const selectChartLoading = ({ reports }: AppState): StoreType['chartLoading'] =>\r\n reports[currentStoreName].chartLoading;\r\n\r\nexport const selectPieChartData = ({ reports }: AppState): StoreType['pieChartData'] =>\r\n reports[currentStoreName].pieChartData;\r\n\r\nexport const selectPieChartLoading = ({ reports }: AppState): StoreType['pieChartLoading'] =>\r\n reports[currentStoreName].pieChartLoading;\r\n\r\nexport const selectOnlySumRows = ({ reports }: AppState): StoreType['onlySumRows'] =>\r\n reports[currentStoreName].onlySumRows;\r\n\r\nexport const selectPaginatedTableData = ({ reports }: AppState): StoreType['paginatedTableData'] =>\r\n reports[currentStoreName].paginatedTableData;\r\n\r\nexport const selectFiltersLoading = ({ reports }: AppState): StoreType['filtersLoading'] =>\r\n reports[currentStoreName].filtersLoading;\r\n","import type { AppState } from '../../interfaces';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport type { StoreType } from './interfaces';\r\n\r\nconst currentStoreName = ReportsStoreName.TrueUp;\r\n\r\nexport const selectIsLoading = ({ reports }: AppState): StoreType['loading'] => reports[currentStoreName].loading;\r\n\r\nexport const selectIsCalculating = ({ reports }: AppState): StoreType['calculating'] =>\r\n reports[currentStoreName].calculating;\r\n\r\nexport const selectIsFiltering = ({ reports }: AppState): StoreType['filtering'] => reports[currentStoreName].filtering;\r\n\r\nexport const selectIsCalculationCompleted = ({ reports }: AppState): StoreType['isCalculationCompleted'] =>\r\n reports[currentStoreName].isCalculationCompleted;\r\n\r\nexport const selectInfoData = ({ reports }: AppState): StoreType['infoData'] => reports[currentStoreName].infoData;\r\n\r\nexport const selectTableData = ({ reports }: AppState): StoreType['tableData'] => reports[currentStoreName].tableData;\r\n\r\nexport const selectNewReportTableData = ({ reports }: AppState): StoreType['newReportTableData'] =>\r\n reports[currentStoreName].newReportTableData;\r\n\r\nexport const selectPreviousReportTableData = ({ reports }: AppState): StoreType['previousReportTableData'] =>\r\n reports[currentStoreName].previousReportTableData;\r\n","import type { AppState } from '../../interfaces';\r\nimport { ReportsStoreName } from '../storeName';\r\nimport type { StoreType } from './interfaces';\r\n\r\nconst currentStoreName = ReportsStoreName.ExpenseOutlookView;\r\n\r\nexport const selectDataLoading = ({ reports }: AppState): StoreType['loading'] => reports[currentStoreName].loading;\r\n\r\nexport const selectGeneratedReport = ({ reports }: AppState): StoreType['generatedReport'] =>\r\n reports[currentStoreName].generatedReport;\r\n\r\nexport const selectTableFilters = ({ reports }: AppState): StoreType['filters'] => reports[currentStoreName].filters;\r\n\r\nexport const selectTableData = ({ reports }: AppState): StoreType['data'] => reports[currentStoreName].data;\r\n\r\nexport const selectTableHeaders = ({ reports }: AppState): StoreType['headers'] => reports[currentStoreName].headers;\r\n\r\nexport const selectChartData = ({ reports }: AppState): StoreType['chartData'] => reports[currentStoreName].chartData;\r\n\r\nexport const selectChartLoading = ({ reports }: AppState): StoreType['chartLoading'] =>\r\n reports[currentStoreName].chartLoading;\r\n\r\nexport const selectPaginatedTableData = ({ reports }: AppState): StoreType['paginatedTableData'] =>\r\n reports[currentStoreName].paginatedTableData;\r\n\r\nexport const selectFiltersLoading = ({ reports }: AppState): StoreType['filtersLoading'] =>\r\n reports[currentStoreName].filtersLoading;\r\n","import * as SummaryTotal from './summaryTotal/selectors';\r\nimport * as DepartmentView from './departmentView/selectors';\r\nimport * as EmployeeView from './employeeView/selectors';\r\nimport * as GeographicalView from './geographicalView/selectors';\r\nimport * as PlanView from './planView/selectors';\r\nimport * as ProvisionalExpense from './provisionalExpense/selectors';\r\nimport * as TrueUp from './trueUp/selectors';\r\nimport * as ExpenseOutlookView from './expenseOutlookView/selectors';\r\n\r\nexport const Reports = {\r\n SummaryTotal,\r\n DepartmentView,\r\n EmployeeView,\r\n GeographicalView,\r\n PlanView,\r\n ProvisionalExpense,\r\n TrueUp,\r\n ExpenseOutlookView,\r\n};\r\n","import type { AppState } from '../interfaces';\r\n\r\nexport const selectIsUploadingShareRegister = ({ fileUploading }: AppState): boolean => fileUploading.shareRegister;\r\n\r\nexport const selectIsUploadingGrandValuation = ({ fileUploading }: AppState): boolean => fileUploading.grandValuation;\r\n\r\nexport const selectIsUploadingEmployeeStatus = ({ fileUploading }: AppState): boolean => fileUploading.employeeStatus;\r\n\r\nexport const selectIsUploadingCustomVestingStatus = ({ fileUploading }: AppState): boolean =>\r\n fileUploading.customVesting;\r\n","import type { AppState } from '../interfaces';\r\nimport type { StoreType } from './interfaces';\r\n\r\nexport const selectIsNotificationCenterOpen = ({ notificationCenter }: AppState): StoreType['isOpen'] =>\r\n notificationCenter.isOpen;\r\n\r\nexport const selectIsReloadShareRegisterDataNeeded = ({\r\n notificationCenter,\r\n}: AppState): StoreType['reload']['shareRegister'] => notificationCenter.reload.shareRegister;\r\n\r\nexport const selectIsReloadEmployeeStatusDataNeeded = ({\r\n notificationCenter,\r\n}: AppState): StoreType['reload']['employeeStatus'] => notificationCenter.reload.employeeStatus;\r\n\r\nexport const selectIsReloadValuationRefDataNeeded = ({\r\n notificationCenter,\r\n}: AppState): StoreType['reload']['valuationReference'] => notificationCenter.reload.valuationReference;\r\n\r\nexport const selectIsReloadFilesDataNeeded = ({ notificationCenter }: AppState): StoreType['reload']['files'] =>\r\n notificationCenter.reload.files;\r\n\r\nexport const selectIsReloadProvisionalExpenseDataNeeded = ({\r\n notificationCenter,\r\n}: AppState): StoreType['reload']['provisionalExpense'] => notificationCenter.reload.provisionalExpense;\r\n\r\nexport const selectIsReloadCustomVestingSchedulesDataNeeded = ({\r\n notificationCenter,\r\n}: AppState): StoreType['reload']['customVestingSchedules'] => notificationCenter.reload.customVestingSchedules;\r\n\r\nexport const selectIsReloadPerformanceHurdlesDataNeeded = ({\r\n notificationCenter,\r\n}: AppState): StoreType['reload']['performanceHurdles'] => notificationCenter.reload.performanceHurdles;\r\n","import type { AppState } from '../interfaces';\r\n\r\nexport const selectCurrentEmployeeContractId = ({ managerEmployeeContracts }: AppState): string =>\r\n managerEmployeeContracts.currentEmployeeContractId;\r\n","import { selectCurrentUser } from './user/selectors';\r\nimport { selectGlobalRedirectTo } from './redirect/selectors';\r\nimport { selectIsSidebarOpen } from './sidebar/selectors';\r\nimport { selectIsUserPanelOpen } from './userPanel/selectors';\r\nimport { selectGlobalLoader } from './loader/selectors';\r\nimport * as Expenses from './expenses/selectors';\r\nimport { Reports } from './reports/selectors';\r\nimport * as Files from './files/selectors';\r\nimport * as FileUploading from './fileUploading/selectors';\r\nimport * as Localization from './localization/selectors';\r\nimport {\r\n selectIsNotificationCenterOpen,\r\n selectIsReloadEmployeeStatusDataNeeded,\r\n selectIsReloadShareRegisterDataNeeded,\r\n selectIsReloadValuationRefDataNeeded,\r\n selectIsReloadFilesDataNeeded,\r\n selectIsReloadProvisionalExpenseDataNeeded,\r\n selectIsReloadCustomVestingSchedulesDataNeeded,\r\n selectIsReloadPerformanceHurdlesDataNeeded,\r\n} from './notificationCenter/selectors';\r\nimport * as ManageEmployeeContracts from './managerEmployeeContracts/selectors';\r\n\r\nexport const Selectors = {\r\n Expenses,\r\n Reports,\r\n Files,\r\n FileUploading,\r\n Localization,\r\n ManageEmployeeContracts,\r\n Main: {\r\n selectGlobalLoader,\r\n selectIsUserPanelOpen,\r\n selectIsSidebarOpen,\r\n selectGlobalRedirectTo,\r\n selectCurrentUser,\r\n selectIsNotificationCenterOpen,\r\n reloadData: {\r\n shareRegister: selectIsReloadShareRegisterDataNeeded,\r\n employeeStatus: selectIsReloadEmployeeStatusDataNeeded,\r\n grantValuation: selectIsReloadValuationRefDataNeeded,\r\n customVestingSchedules: selectIsReloadCustomVestingSchedulesDataNeeded,\r\n files: selectIsReloadFilesDataNeeded,\r\n provisionalExpense: selectIsReloadProvisionalExpenseDataNeeded,\r\n performanceHurdles: selectIsReloadPerformanceHurdlesDataNeeded,\r\n },\r\n },\r\n};\r\n","import type { AppState } from '../interfaces';\r\nimport type { StoreType } from './interfaces';\r\n\r\nexport const selectGlobalLoader = ({ loader }: AppState): StoreType => loader;\r\n","import type { AppState } from '../interfaces';\r\nimport type { StoreType } from './interfaces';\r\n\r\nexport const selectIsUserPanelOpen = ({ userPanel }: AppState): StoreType => userPanel;\r\n","import type { AppState } from '../interfaces';\r\nimport type { StoreType } from './interfaces';\r\n\r\nexport const selectIsSidebarOpen = ({ sidebar }: AppState): StoreType => sidebar;\r\n","export enum StoreName {\r\n CurrentUser = 'currentUser',\r\n RedirectTo = 'redirectTo',\r\n Loader = 'loader',\r\n Sidebar = 'sidebar',\r\n UserPanel = 'userPanel',\r\n Expenses = 'expenses',\r\n Reports = 'reports',\r\n Files = 'files',\r\n NotificationCenter = 'notificationCenter',\r\n FileUploading = 'fileUploading',\r\n Localization = 'localization',\r\n DataExporting = 'dataExporting',\r\n ManagerEmployeeContracts = 'managerEmployeeContracts',\r\n}\r\n","export enum TypeName {\r\n SET_IS_OPEN = 'SET_IS_OPEN',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.UserPanel}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_IS_OPEN]: `${baseTypeName}${TypeName.SET_IS_OPEN}`,\r\n} as const;\r\n","import { Types } from './types';\r\nimport type * as Interfaces from './interfaces';\r\n\r\nexport const setUser = (user?: Interfaces.CurrentUserPayloadType['user']['user']) =>\r\n ({\r\n type: Types.SET_USER,\r\n payload: { user: user || null },\r\n } as const);\r\n\r\nexport const setUserToken = (tokenObj?: Interfaces.CurrentUserPayloadType['tokenObj']['tokenObj']) =>\r\n ({\r\n type: Types.SET_TOKEN,\r\n payload: { tokenObj: tokenObj || null },\r\n } as const);\r\n\r\nexport const setUserSettings = (settings: Interfaces.CurrentUserPayloadType['settings']) =>\r\n ({\r\n type: Types.SET_SETTINGS,\r\n payload: settings,\r\n } as const);\r\n","import type { AppState } from '../interfaces';\r\nimport type { StoreType } from './interfaces';\r\n\r\nexport const selectCurrentUser = ({ currentUser }: AppState): StoreType => currentUser;\r\n","export enum TypeName {\r\n SET_USER = 'SET_USER',\r\n SET_TOKEN = 'SET_TOKEN',\r\n SET_SETTINGS = 'SET_SETTINGS',\r\n}\r\n","import { StoreName } from '../storeName';\r\nimport { TypeName } from './enums';\r\n\r\nconst baseTypeName = `${StoreName.CurrentUser}/` as const;\r\n\r\nexport const Types = {\r\n [TypeName.SET_USER]: `${baseTypeName}${TypeName.SET_USER}`,\r\n [TypeName.SET_TOKEN]: `${baseTypeName}${TypeName.SET_TOKEN}`,\r\n [TypeName.SET_SETTINGS]: `${baseTypeName}${TypeName.SET_SETTINGS}`,\r\n} as const;\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpTransportType } from \"./ITransport\";\r\n\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The HTTP status code represented by this error. */\r\n public statusCode: number;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage: string, statusCode: number) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage: string = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage: string = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The {@link @microsoft/signalr.HttpTransportType} this error occurred on. */\r\n public transport: HttpTransportType;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message: string, transport: HttpTransportType) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The type name of this error. */\r\n public errorType: string;\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message: string) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n\r\n/** Error thrown when multiple errors have occurred. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n // @ts-ignore: Intentionally unused.\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private __proto__: Error;\r\n\r\n /** The collection of errors this error is aggregating. */\r\n public innerErrors: Error[];\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message: string, innerErrors: Error[]) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n\r\n this.innerErrors = innerErrors;\r\n\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\n/** @private */\r\nexport interface HandshakeRequestMessage {\r\n readonly protocol: string;\r\n readonly version: number;\r\n}\r\n\r\n/** @private */\r\nexport interface HandshakeResponseMessage {\r\n readonly error: string;\r\n readonly minorVersion: number;\r\n}\r\n\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n public writeHandshakeRequest(handshakeRequest: HandshakeRequestMessage): string {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n\r\n public parseHandshakeResponse(data: any): [any, HandshakeResponseMessage] {\r\n let messageData: string;\r\n let remainingData: any;\r\n\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n } else {\r\n const textData: string = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage: HandshakeResponseMessage = response;\r\n\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { IStreamResult, IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { SubjectSubscription } from \"./Utils\";\r\n\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject implements IStreamResult {\r\n /** @internal */\r\n public observers: IStreamSubscriber[];\r\n\r\n /** @internal */\r\n public cancelCallback?: () => Promise;\r\n\r\n constructor() {\r\n this.observers = [];\r\n }\r\n\r\n public next(item: T): void {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n\r\n public error(err: any): void {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n\r\n public complete(): void {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n\r\n public subscribe(observer: IStreamSubscriber): ISubscription {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HandshakeProtocol, HandshakeRequestMessage, HandshakeResponseMessage } from \"./HandshakeProtocol\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { CancelInvocationMessage, CompletionMessage, IHubProtocol, InvocationMessage, MessageType, StreamInvocationMessage, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IRetryPolicy } from \"./IRetryPolicy\";\r\nimport { IStreamResult } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\n\r\nconst DEFAULT_TIMEOUT_IN_MS: number = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS: number = 15 * 1000;\r\n\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport enum HubConnectionState {\r\n /** The hub connection is disconnected. */\r\n Disconnected = \"Disconnected\",\r\n /** The hub connection is connecting. */\r\n Connecting = \"Connecting\",\r\n /** The hub connection is connected. */\r\n Connected = \"Connected\",\r\n /** The hub connection is disconnecting. */\r\n Disconnecting = \"Disconnecting\",\r\n /** The hub connection is reconnecting. */\r\n Reconnecting = \"Reconnecting\",\r\n}\r\n\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n private readonly _cachedPingMessage: string | ArrayBuffer;\r\n // Needs to not start with _ for tests\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private readonly connection: IConnection;\r\n private readonly _logger: ILogger;\r\n private readonly _reconnectPolicy?: IRetryPolicy;\r\n private _protocol: IHubProtocol;\r\n private _handshakeProtocol: HandshakeProtocol;\r\n private _callbacks: { [invocationId: string]: (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => void };\r\n private _methods: { [name: string]: (((...args: any[]) => void) | ((...args: any[]) => any))[] };\r\n private _invocationId: number;\r\n\r\n private _closedCallbacks: ((error?: Error) => void)[];\r\n private _reconnectingCallbacks: ((error?: Error) => void)[];\r\n private _reconnectedCallbacks: ((connectionId?: string) => void)[];\r\n\r\n private _receivedHandshakeResponse: boolean;\r\n private _handshakeResolver!: (value?: PromiseLike<{}>) => void;\r\n private _handshakeRejecter!: (reason?: any) => void;\r\n private _stopDuringStartError?: Error;\r\n\r\n private _connectionState: HubConnectionState;\r\n // connectionStarted is tracked independently from connectionState, so we can check if the\r\n // connection ever did successfully transition from connecting to connected before disconnecting.\r\n private _connectionStarted: boolean;\r\n private _startPromise?: Promise;\r\n private _stopPromise?: Promise;\r\n private _nextKeepAlive: number = 0;\r\n\r\n // The type of these a) doesn't matter and b) varies when building in browser and node contexts\r\n // Since we're building the WebPack bundle directly from the TypeScript, this matters (previously\r\n // we built the bundle from the compiled JavaScript).\r\n private _reconnectDelayHandle?: any;\r\n private _timeoutHandle?: any;\r\n private _pingServerHandle?: any;\r\n\r\n private _freezeEventListener = () =>\r\n {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n\r\n /** The server timeout in milliseconds.\r\n *\r\n * If this timeout elapses without receiving any messages from the server, the connection will be terminated with an error.\r\n * The default timeout value is 30,000 milliseconds (30 seconds).\r\n */\r\n public serverTimeoutInMilliseconds: number;\r\n\r\n /** Default interval at which to ping the server.\r\n *\r\n * The default value is 15,000 milliseconds (15 seconds).\r\n * Allows the server to detect hard disconnects (like when a client unplugs their computer).\r\n * The ping will happen at most as often as the server pings.\r\n * If the server pings every 5 seconds, a value lower than 5 will ping every 5 seconds.\r\n */\r\n public keepAliveIntervalInMilliseconds: number;\r\n\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n public static create(connection: IConnection, logger: ILogger, protocol: IHubProtocol, reconnectPolicy?: IRetryPolicy): HubConnection {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy);\r\n }\r\n\r\n private constructor(connection: IConnection, logger: ILogger, protocol: IHubProtocol, reconnectPolicy?: IRetryPolicy) {\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n\r\n this.connection.onreceive = (data: any) => this._processIncomingData(data);\r\n this.connection.onclose = (error?: Error) => this._connectionClosed(error);\r\n\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state(): HubConnectionState {\r\n return this._connectionState;\r\n }\r\n\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId(): string | null {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl(): string {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url: string) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n\r\n this.connection.baseUrl = url;\r\n }\r\n\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n public start(): Promise {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n\r\n private async _startWithStateTransitions(): Promise {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n\r\n try {\r\n await this._startInternal();\r\n\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n } catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n private async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n\r\n await this.connection.start(this._protocol.transferFormat);\r\n\r\n try {\r\n const handshakeRequest: HandshakeRequestMessage = {\r\n protocol: this._protocol.name,\r\n version: this._protocol.version,\r\n };\r\n\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n\r\n await handshakePromise;\r\n\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n } catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n public async stop(): Promise {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n } catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n\r\n private _stopInternal(error?: Error): Promise {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise!;\r\n }\r\n\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n public stream(methodName: string, ...args: any[]): IStreamResult {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue: Promise;\r\n\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation: CancelInvocationMessage = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent: CompletionMessage | StreamItemMessage | null, error?: Error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n } else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n } else {\r\n subject.complete();\r\n }\r\n } else {\r\n subject.next((invocationEvent.item) as T);\r\n }\r\n }\r\n };\r\n\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n\r\n this._launchStreams(streams, promiseQueue);\r\n\r\n return subject;\r\n }\r\n\r\n private _sendMessage(message: any) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n private _sendWithProtocol(message: any) {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n public send(methodName: string, ...args: any[]): Promise {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n\r\n this._launchStreams(streams, sendPromise);\r\n\r\n return sendPromise;\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n public invoke(methodName: string, ...args: any[]): Promise {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId!] = (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n } else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n } else {\r\n resolve(invocationEvent.result);\r\n }\r\n } else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId!];\r\n });\r\n\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n\r\n return p;\r\n }\r\n\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n public on(methodName: string, newMethod: (...args: any[]) => any): void\r\n public on(methodName: string, newMethod: (...args: any[]) => void): void {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n\r\n this._methods[methodName].push(newMethod);\r\n }\r\n\r\n /** Removes all handlers for the specified hub method.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n */\r\n public off(methodName: string): void;\r\n\r\n /** Removes the specified handler for the specified hub method.\r\n *\r\n * You must pass the exact same Function instance as was previously passed to {@link @microsoft/signalr.HubConnection.on}. Passing a different instance (even if the function\r\n * body is the same) will not remove the handler.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n * @param {Function} method The handler to remove. This must be the same Function instance as the one passed to {@link @microsoft/signalr.HubConnection.on}.\r\n */\r\n public off(methodName: string, method: (...args: any[]) => void): void;\r\n public off(methodName: string, method?: (...args: any[]) => void): void {\r\n if (!methodName) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n } else {\r\n delete this._methods[methodName];\r\n }\r\n\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n public onclose(callback: (error?: Error) => void): void {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n public onreconnecting(callback: (error?: Error) => void): void {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n public onreconnected(callback: (connectionId?: string) => void): void {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n\r\n private _processIncomingData(data: any) {\r\n this._cleanupTimeout();\r\n\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n\r\n for (const message of messages) {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n } else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n\r\n break;\r\n }\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this._resetTimeoutPeriod();\r\n }\r\n\r\n private _processHandshakeResponse(data: any): any {\r\n let responseMessage: HandshakeResponseMessage;\r\n let remainingData: any;\r\n\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n } catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n } else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n\r\n private _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n\r\n this._cleanupPingTimer();\r\n }\r\n\r\n private _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined)\r\n {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n } catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n\r\n private async _invokeClientMethod(invocationMessage: InvocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n } catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n } else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, `${exception}`, null);\r\n } else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, null, res);\r\n } else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n } else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n\r\n private _connectionClosed(error?: Error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n } else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n } else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n\r\n private _completeClose(error?: Error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n\r\n private async _reconnect(error?: Error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n } else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay!);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n\r\n try {\r\n await this._startInternal();\r\n\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n\r\n return;\r\n } catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState as any === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n\r\n this._completeClose();\r\n }\r\n\r\n private _getNextRetryDelay(previousRetryCount: number, elapsedMilliseconds: number, retryReason: Error) {\r\n try {\r\n return this._reconnectPolicy!.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n\r\n private _cancelCallbacksWithError(error: Error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n\r\n private _cleanupPingTimer(): void {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n\r\n private _cleanupTimeout(): void {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n\r\n private _createInvocation(methodName: string, args: any[], nonblocking: boolean, streamIds: string[]): InvocationMessage {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n } else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n\r\n private _launchStreams(streams: IStreamResult[], promiseQueue: Promise): void {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message: string;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n } else if (err && err.toString) {\r\n message = err.toString();\r\n } else {\r\n message = \"Unknown error\";\r\n }\r\n\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n\r\n private _replaceStreamingParams(args: any[]): [IStreamResult[], string[]] {\r\n const streams: IStreamResult[] = [];\r\n const streamIds: string[] = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n\r\n return [streams, streamIds];\r\n }\r\n\r\n private _isObservable(arg: any): arg is IStreamResult {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n\r\n private _createStreamInvocation(methodName: string, args: any[], streamIds: string[]): StreamInvocationMessage {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n\r\n private _createCancelInvocation(id: string): CancelInvocationMessage {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n\r\n private _createStreamItemMessage(id: string, item: any): StreamItemMessage {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n\r\n private _createCompletionMessage(id: string, error?: any, result?: any): CompletionMessage {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { IRetryPolicy, RetryContext } from \"./IRetryPolicy\";\r\n\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n\r\n/** @private */\r\nexport class DefaultReconnectPolicy implements IRetryPolicy {\r\n private readonly _retryDelays: (number | null)[];\r\n\r\n constructor(retryDelays?: number[]) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n\r\n public nextRetryDelayInMilliseconds(retryContext: RetryContext): number | null {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nexport abstract class HeaderNames {\r\n static readonly Authorization = \"Authorization\";\r\n static readonly Cookie = \"Cookie\";\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortSignal } from \"./AbortController\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\n\r\n/** Represents an HTTP request. */\r\nexport interface HttpRequest {\r\n /** The HTTP method to use for the request. */\r\n method?: string;\r\n\r\n /** The URL for the request. */\r\n url?: string;\r\n\r\n /** The body content for the request. May be a string or an ArrayBuffer (for binary data). */\r\n content?: string | ArrayBuffer;\r\n\r\n /** An object describing headers to apply to the request. */\r\n headers?: MessageHeaders;\r\n\r\n /** The XMLHttpRequestResponseType to apply to the request. */\r\n responseType?: XMLHttpRequestResponseType;\r\n\r\n /** An AbortSignal that can be monitored for cancellation. */\r\n abortSignal?: AbortSignal;\r\n\r\n /** The time to wait for the request to complete before throwing a TimeoutError. Measured in milliseconds. */\r\n timeout?: number;\r\n\r\n /** This controls whether credentials such as cookies are sent in cross-site requests. */\r\n withCredentials?: boolean;\r\n}\r\n\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n */\r\n constructor(statusCode: number);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code and message.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n */\r\n constructor(statusCode: number, statusText: string);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and string content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {string} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: string);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and binary content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {ArrayBuffer} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: ArrayBuffer);\r\n\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpResponse} with the specified status code, message and binary content.\r\n *\r\n * @param {number} statusCode The status code of the response.\r\n * @param {string} statusText The status message of the response.\r\n * @param {string | ArrayBuffer} content The content of the response.\r\n */\r\n constructor(statusCode: number, statusText: string, content: string | ArrayBuffer);\r\n constructor(\r\n public readonly statusCode: number,\r\n public readonly statusText?: string,\r\n public readonly content?: string | ArrayBuffer) {\r\n }\r\n}\r\n\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport abstract class HttpClient {\r\n /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public get(url: string): Promise;\r\n\r\n /** Issues an HTTP GET request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public get(url: string, options: HttpRequest): Promise;\r\n public get(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public post(url: string): Promise;\r\n\r\n /** Issues an HTTP POST request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public post(url: string, options: HttpRequest): Promise;\r\n public post(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public delete(url: string): Promise;\r\n\r\n /** Issues an HTTP DELETE request to the specified URL, returning a Promise that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {string} url The URL for the request.\r\n * @param {HttpRequest} options Additional options to configure the request. The 'url' field in this object will be overridden by the url parameter.\r\n * @returns {Promise} A Promise that resolves with an {@link @microsoft/signalr.HttpResponse} describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public delete(url: string, options: HttpRequest): Promise;\r\n public delete(url: string, options?: HttpRequest): Promise {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n\r\n /** Issues an HTTP request to the specified URL, returning a {@link Promise} that resolves with an {@link @microsoft/signalr.HttpResponse} representing the result.\r\n *\r\n * @param {HttpRequest} request An {@link @microsoft/signalr.HttpRequest} describing the request to send.\r\n * @returns {Promise} A Promise that resolves with an HttpResponse describing the response, or rejects with an Error indicating a failure.\r\n */\r\n public abstract send(request: HttpRequest): Promise;\r\n\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n public getCookieString(url: string): string {\r\n return \"\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\n\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n private _innerClient: HttpClient;\r\n _accessToken: string | undefined;\r\n _accessTokenFactory: (() => string | Promise) | undefined;\r\n\r\n constructor(innerClient: HttpClient, accessTokenFactory: (() => string | Promise) | undefined) {\r\n super();\r\n\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n\r\n public async send(request: HttpRequest): Promise {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n\r\n private _setAuthorizationHeader(request: HttpRequest) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// @ts-ignore: This will be removed from built files and is here to make the types available during dev work\r\nimport { CookieJar } from \"@types/tough-cookie\";\r\n\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\n\r\nexport class FetchHttpClient extends HttpClient {\r\n private readonly _abortControllerType: { prototype: AbortController, new(): AbortController };\r\n private readonly _fetchType: (input: RequestInfo, init?: RequestInit) => Promise;\r\n private readonly _jar?: CookieJar;\r\n\r\n private readonly _logger: ILogger;\r\n\r\n public constructor(logger: ILogger) {\r\n super();\r\n this._logger = logger;\r\n\r\n if (typeof fetch === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n this._fetchType = requireFunc(\"node-fetch\");\r\n\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n } else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n if (typeof AbortController === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n this._abortControllerType = requireFunc(\"abort-controller\");\r\n } else {\r\n this._abortControllerType = AbortController;\r\n }\r\n }\r\n\r\n /** @inheritDoc */\r\n public async send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n\r\n const abortController = new this._abortControllerType();\r\n\r\n let error: any;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId: any = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout!;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n } else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n\r\n let response: Response;\r\n try {\r\n response = await this._fetchType(request.url!, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method!,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n } catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(\r\n LogLevel.Warning,\r\n `Error from HTTP request. ${e}.`,\r\n );\r\n throw e;\r\n } finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\") as string;\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n\r\n return new HttpResponse(\r\n response.status,\r\n response.statusText,\r\n payload,\r\n );\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n let cookies: string = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\n\r\nfunction deserializeContent(response: Response, responseType?: XMLHttpRequestResponseType): Promise {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n\r\n return content;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n\r\nexport class XhrHttpClient extends HttpClient {\r\n private readonly _logger: ILogger;\r\n\r\n public constructor(logger: ILogger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n\r\n /** @inheritDoc */\r\n public send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n\r\n xhr.open(request.method!, request.url!, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n } else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n } else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient, HttpRequest, HttpResponse } from \"./HttpClient\";\r\nimport { ILogger } from \"./ILogger\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n private readonly _httpClient: HttpClient;\r\n\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n public constructor(logger: ILogger) {\r\n super();\r\n\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n } else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n } else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n\r\n /** @inheritDoc */\r\n public send(request: HttpRequest): Promise {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n\r\n return this._httpClient.send(request);\r\n }\r\n\r\n public getCookieString(url: string): string {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController implements AbortSignal {\r\n private _isAborted: boolean = false;\r\n public onabort: (() => void) | null = null;\r\n\r\n public abort(): void {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n\r\n get signal(): AbortSignal {\r\n return this;\r\n }\r\n\r\n get aborted(): boolean {\r\n return this._isAborted;\r\n }\r\n}\r\n\r\n/** Represents a signal that can be monitored to determine if a request has been aborted. */\r\nexport interface AbortSignal {\r\n /** Indicates if the request has been aborted. */\r\n aborted: boolean;\r\n /** Set this to a handler that will be invoked when the request is aborted. */\r\n onabort: (() => void) | null;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpRequest } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport implements ITransport {\r\n private readonly _httpClient: HttpClient;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n private readonly _pollAbort: AbortController;\r\n\r\n private _url?: string;\r\n private _running: boolean;\r\n private _receiving?: Promise;\r\n private _closeError?: Error;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n public get pollAborted(): boolean {\r\n return this._pollAbort.aborted;\r\n }\r\n\r\n constructor(httpClient: HttpClient, logger: ILogger, options: IHttpConnectionOptions) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n\r\n this._running = false;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._url = url;\r\n\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n\r\n const pollOptions: HttpRequest = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n } else {\r\n this._running = true;\r\n }\r\n\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n\r\n private async _poll(url: string, pollOptions: HttpRequest): Promise {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n\r\n this._running = false;\r\n } else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n } else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent!)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n } else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n } catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n } else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n } else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n } finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n\r\n public async send(data: any): Promise {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url!, data, this._options);\r\n }\r\n\r\n public async stop(): Promise {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n\r\n try {\r\n await this._receiving;\r\n\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n const deleteOptions: HttpRequest = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n await this._httpClient.delete(this._url!, deleteOptions);\r\n\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n } finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n\r\n private _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n/** @private */\r\nexport class ServerSentEventsTransport implements ITransport {\r\n private readonly _httpClient: HttpClient;\r\n private readonly _accessToken: string | undefined;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n private _eventSource?: EventSource;\r\n private _url?: string;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n constructor(httpClient: HttpClient, accessToken: string | undefined, logger: ILogger,\r\n options: IHttpConnectionOptions) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n\r\n let eventSource: EventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource!(url, { withCredentials: this._options.withCredentials });\r\n } else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers: MessageHeaders = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n eventSource = new this._options.EventSource!(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers} } as EventSourceInit);\r\n }\r\n\r\n try {\r\n eventSource.onmessage = (e: MessageEvent) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent!)}.`);\r\n this.onreceive(e.data);\r\n } catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e: Event) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n } else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n } catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n\r\n public async send(data: any): Promise {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url!, data, this._options);\r\n }\r\n\r\n public stop(): Promise {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n\r\n private _close(e?: Error) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { MessageHeaders } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { ITransport, TransferFormat } from \"./ITransport\";\r\nimport { WebSocketConstructor } from \"./Polyfills\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n\r\n/** @private */\r\nexport class WebSocketTransport implements ITransport {\r\n private readonly _logger: ILogger;\r\n private readonly _accessTokenFactory: (() => string | Promise) | undefined;\r\n private readonly _logMessageContent: boolean;\r\n private readonly _webSocketConstructor: WebSocketConstructor;\r\n private readonly _httpClient: HttpClient;\r\n private _webSocket?: WebSocket;\r\n private _headers: MessageHeaders;\r\n\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((error?: Error) => void) | null;\r\n\r\n constructor(httpClient: HttpClient, accessTokenFactory: (() => string | Promise) | undefined, logger: ILogger,\r\n logMessageContent: boolean, webSocketConstructor: WebSocketConstructor, headers: MessageHeaders) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n\r\n public async connect(url: string, transferFormat: TransferFormat): Promise {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n\r\n let token: string;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket: WebSocket | undefined;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else\r\n {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n\r\n webSocket.onopen = (_event: Event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n\r\n webSocket.onerror = (event: Event) => {\r\n let error: any = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n } else {\r\n error = \"There was an error with the transport\";\r\n }\r\n\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n\r\n webSocket.onmessage = (message: MessageEvent) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n } catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n\r\n webSocket.onclose = (event: CloseEvent) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n } else {\r\n let error: any = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n } else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n\r\n public send(data: any): Promise {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n\r\n public stop(): Promise {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n private _close(event?: CloseEvent | Error): void {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => {};\r\n this._webSocket.onmessage = () => {};\r\n this._webSocket.onerror = () => {};\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n } else if (event instanceof Error) {\r\n this.onclose(event);\r\n } else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n\r\n private _isCloseEvent(event?: any): event is CloseEvent {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, ITransport, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\n\r\n/** @private */\r\nconst enum ConnectionState {\r\n Connecting = \"Connecting\",\r\n Connected = \"Connected\",\r\n Disconnected = \"Disconnected\",\r\n Disconnecting = \"Disconnecting\",\r\n}\r\n\r\n/** @private */\r\nexport interface INegotiateResponse {\r\n connectionId?: string;\r\n connectionToken?: string;\r\n negotiateVersion?: number;\r\n availableTransports?: IAvailableTransport[];\r\n url?: string;\r\n accessToken?: string;\r\n error?: string;\r\n}\r\n\r\n/** @private */\r\nexport interface IAvailableTransport {\r\n transport: keyof typeof HttpTransportType;\r\n transferFormats: (keyof typeof TransferFormat)[];\r\n}\r\n\r\nconst MAX_REDIRECTS = 100;\r\n\r\n/** @private */\r\nexport class HttpConnection implements IConnection {\r\n private _connectionState: ConnectionState;\r\n // connectionStarted is tracked independently from connectionState, so we can check if the\r\n // connection ever did successfully transition from connecting to connected before disconnecting.\r\n private _connectionStarted: boolean;\r\n private readonly _httpClient: AccessTokenHttpClient;\r\n private readonly _logger: ILogger;\r\n private readonly _options: IHttpConnectionOptions;\r\n // Needs to not start with _ to be available for tests\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private transport?: ITransport;\r\n private _startInternalPromise?: Promise;\r\n private _stopPromise?: Promise;\r\n private _stopPromiseResolver: (value?: PromiseLike) => void = () => {};\r\n private _stopError?: Error;\r\n private _accessTokenFactory?: () => string | Promise;\r\n private _sendQueue?: TransportSendQueue;\r\n\r\n public readonly features: any = {};\r\n public baseUrl: string;\r\n public connectionId?: string;\r\n public onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n public onclose: ((e?: Error) => void) | null;\r\n\r\n private readonly _negotiateVersion: number = 1;\r\n\r\n constructor(url: string, options: IHttpConnectionOptions = {}) {\r\n Arg.isRequired(url, \"url\");\r\n\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n } else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n\r\n let webSocketModule: any = null;\r\n let eventSourceModule: any = null;\r\n\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n webSocketModule = requireFunc(\"ws\");\r\n eventSourceModule = requireFunc(\"eventsource\");\r\n }\r\n\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n } else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n } else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = ConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n\r\n public start(): Promise;\r\n public start(transferFormat: TransferFormat): Promise;\r\n public async start(transferFormat?: TransferFormat): Promise {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n\r\n if (this._connectionState !== ConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n\r\n this._connectionState = ConnectionState.Connecting;\r\n\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState as any === ConnectionState.Disconnecting) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n\r\n return Promise.reject(new AbortError(message));\r\n } else if (this._connectionState as any !== ConnectionState.Connected) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n\r\n this._connectionStarted = true;\r\n }\r\n\r\n public send(data: string | ArrayBuffer): Promise {\r\n if (this._connectionState !== ConnectionState.Connected) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport!);\r\n }\r\n\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n\r\n public async stop(error?: Error): Promise {\r\n if (this._connectionState === ConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n\r\n this._connectionState = ConnectionState.Disconnecting;\r\n\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n\r\n private async _stopInternal(error?: Error): Promise {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n\r\n try {\r\n await this._startInternalPromise;\r\n } catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n\r\n this.transport = undefined;\r\n } else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n\r\n private async _startInternal(transferFormat: TransferFormat): Promise {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n } else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n } else {\r\n let negotiateResponse: INegotiateResponse | null = null;\r\n let redirects = 0;\r\n\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === ConnectionState.Disconnecting || this._connectionState === ConnectionState.Disconnected) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n\r\n if ((negotiateResponse as any).ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n\r\n redirects++;\r\n }\r\n while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Connecting) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = ConnectionState.Connected;\r\n }\r\n\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = ConnectionState.Disconnected;\r\n this.transport = undefined;\r\n\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n private async _getNegotiationResponse(url: string): Promise {\r\n const headers: {[k: string]: string} = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n\r\n const negotiateResponse = JSON.parse(response.content as string) as INegotiateResponse;\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n return negotiateResponse;\r\n } catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n\r\n private _createConnectUrl(url: string, connectionToken: string | null | undefined) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n\r\n private async _createTransport(url: string, requestedTransport: HttpTransportType | ITransport | undefined, negotiateResponse: INegotiateResponse, requestedTransferFormat: TransferFormat): Promise {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n\r\n const transportExceptions: any[] = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate: INegotiateResponse | undefined = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n } else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n } catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n } catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n\r\n if (this._connectionState !== ConnectionState.Connecting) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n\r\n private _constructTransport(transport: HttpTransportType): ITransport {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent!, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n\r\n private _startTransport(url: string, transferFormat: TransferFormat): Promise {\r\n this.transport!.onreceive = this.onreceive;\r\n this.transport!.onclose = (e) => this._stopConnection(e);\r\n return this.transport!.connect(url, transferFormat);\r\n }\r\n\r\n private _resolveTransportOrError(endpoint: IAvailableTransport, requestedTransport: HttpTransportType | undefined, requestedTransferFormat: TransferFormat): ITransport | Error {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n } else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n return this._constructTransport(transport);\r\n } catch (ex) {\r\n return ex;\r\n }\r\n }\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n } else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n\r\n private _isITransport(transport: any): transport is ITransport {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n\r\n private _stopConnection(error?: Error): void {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n\r\n this.transport = undefined;\r\n\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n\r\n if (this._connectionState === ConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Connecting) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n\r\n if (this._connectionState === ConnectionState.Disconnecting) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n } else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n\r\n this.connectionId = undefined;\r\n this._connectionState = ConnectionState.Disconnected;\r\n\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n\r\n private _resolveUrl(url: string): string {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n\r\n private _resolveNegotiateUrl(url: string): string {\r\n const index = url.indexOf(\"?\");\r\n let negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n\r\n if (negotiateUrl.indexOf(\"negotiateVersion\") === -1) {\r\n negotiateUrl += index === -1 ? \"?\" : \"&\";\r\n negotiateUrl += \"negotiateVersion=\" + this._negotiateVersion;\r\n }\r\n return negotiateUrl;\r\n }\r\n}\r\n\r\nfunction transportMatches(requestedTransport: HttpTransportType | undefined, actualTransport: HttpTransportType) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n\r\n/** @private */\r\nexport class TransportSendQueue {\r\n private _buffer: any[] = [];\r\n private _sendBufferedData: PromiseSource;\r\n private _executing: boolean = true;\r\n private _transportResult?: PromiseSource;\r\n private _sendLoopPromise: Promise;\r\n\r\n constructor(private readonly _transport: ITransport) {\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n\r\n public send(data: string | ArrayBuffer): Promise {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n\r\n public stop(): Promise {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n\r\n private _bufferData(data: string | ArrayBuffer): void {\r\n if (this._buffer.length && typeof(this._buffer[0]) !== typeof(data)) {\r\n throw new Error(`Expected data to be of type ${typeof(this._buffer)} but was of type ${typeof(data)}`);\r\n }\r\n\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n\r\n private async _sendLoop(): Promise {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n\r\n break;\r\n }\r\n\r\n this._sendBufferedData = new PromiseSource();\r\n\r\n const transportResult = this._transportResult!;\r\n this._transportResult = undefined;\r\n\r\n const data = typeof(this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n\r\n this._buffer.length = 0;\r\n\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n } catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n\r\n private static _concatBuffers(arrayBuffers: ArrayBuffer[]): ArrayBuffer {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n\r\n return result.buffer;\r\n }\r\n}\r\n\r\nclass PromiseSource {\r\n private _resolver?: () => void;\r\n private _rejecter!: (reason?: any) => void;\r\n public promise: Promise;\r\n\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n\r\n public resolve(): void {\r\n this._resolver!();\r\n }\r\n\r\n public reject(reason?: any): void {\r\n this._rejecter!(reason);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { CompletionMessage, HubMessage, IHubProtocol, InvocationMessage, MessageType, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\n\r\nconst JSON_HUB_PROTOCOL_NAME: string = \"json\";\r\n\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol implements IHubProtocol {\r\n\r\n /** @inheritDoc */\r\n public readonly name: string = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n public readonly version: number = 1;\r\n\r\n /** @inheritDoc */\r\n public readonly transferFormat: TransferFormat = TransferFormat.Text;\r\n\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n public parseMessages(input: string, logger: ILogger): HubMessage[] {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n\r\n if (!input) {\r\n return [];\r\n }\r\n\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message) as HubMessage;\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n\r\n return hubMessages;\r\n }\r\n\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n public writeMessage(message: HubMessage): string {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n\r\n private _isInvocationMessage(message: InvocationMessage): void {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n\r\n private _isStreamItemMessage(message: StreamItemMessage): void {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n\r\n private _isCompletionMessage(message: CompletionMessage): void {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n\r\n private _assertNotEmptyString(value: any, errorMessage: string): void {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\nimport { IHubProtocol } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IRetryPolicy } from \"./IRetryPolicy\";\r\nimport { HttpTransportType } from \"./ITransport\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\n\r\nconst LogLevelNameMapping: {[k: string]: LogLevel} = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\n\r\nfunction parseLogLevel(name: string): LogLevel {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n } else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n /** @internal */\r\n public protocol?: IHubProtocol;\r\n /** @internal */\r\n public httpConnectionOptions?: IHttpConnectionOptions;\r\n /** @internal */\r\n public url?: string;\r\n /** @internal */\r\n public logger?: ILogger;\r\n\r\n /** If defined, this indicates the client should automatically attempt to reconnect if the connection is lost. */\r\n /** @internal */\r\n public reconnectPolicy?: IRetryPolicy;\r\n\r\n /** Configures console logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {LogLevel} logLevel The minimum level of messages to log. Anything at this level, or a more severe level, will be logged.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logLevel: LogLevel): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {ILogger} logger An object implementing the {@link @microsoft/signalr.ILogger} interface, which will be used to write all log messages.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logger: ILogger): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {string} logLevel A string representing a LogLevel setting a minimum level of messages to log.\r\n * See {@link https://docs.microsoft.com/aspnet/core/signalr/configuration#configure-logging|the documentation for client logging configuration} for more details.\r\n */\r\n public configureLogging(logLevel: string): HubConnectionBuilder;\r\n\r\n /** Configures custom logging for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @param {LogLevel | string | ILogger} logging A {@link @microsoft/signalr.LogLevel}, a string representing a LogLevel, or an object implementing the {@link @microsoft/signalr.ILogger} interface.\r\n * See {@link https://docs.microsoft.com/aspnet/core/signalr/configuration#configure-logging|the documentation for client logging configuration} for more details.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public configureLogging(logging: LogLevel | string | ILogger): HubConnectionBuilder;\r\n public configureLogging(logging: LogLevel | string | ILogger): HubConnectionBuilder {\r\n Arg.isRequired(logging, \"logging\");\r\n\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n } else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n } else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n *\r\n * The transport will be selected automatically based on what the server and client support.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified HTTP-based transport to connect to the specified URL.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @param {HttpTransportType} transportType The specific transport to use.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string, transportType: HttpTransportType): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use HTTP-based transports to connect to the specified URL.\r\n *\r\n * @param {string} url The URL the connection will use.\r\n * @param {IHttpConnectionOptions} options An options object used to configure the connection.\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n public withUrl(url: string, options: IHttpConnectionOptions): HubConnectionBuilder;\r\n public withUrl(url: string, transportTypeOrOptions?: IHttpConnectionOptions | HttpTransportType): HubConnectionBuilder {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n\r\n this.url = url;\r\n\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n } else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n public withHubProtocol(protocol: IHubProtocol): HubConnectionBuilder {\r\n Arg.isRequired(protocol, \"protocol\");\r\n\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n * By default, the client will wait 0, 2, 10 and 30 seconds respectively before trying up to 4 reconnect attempts.\r\n */\r\n public withAutomaticReconnect(): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n *\r\n * @param {number[]} retryDelays An array containing the delays in milliseconds before trying each reconnect attempt.\r\n * The length of the array represents how many failed reconnect attempts it takes before the client will stop attempting to reconnect.\r\n */\r\n public withAutomaticReconnect(retryDelays: number[]): HubConnectionBuilder;\r\n\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to automatically attempt to reconnect if the connection is lost.\r\n *\r\n * @param {IRetryPolicy} reconnectPolicy An {@link @microsoft/signalR.IRetryPolicy} that controls the timing and number of reconnect attempts.\r\n */\r\n public withAutomaticReconnect(reconnectPolicy: IRetryPolicy): HubConnectionBuilder;\r\n public withAutomaticReconnect(retryDelaysOrReconnectPolicy?: number[] | IRetryPolicy): HubConnectionBuilder {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n } else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n } else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n public build(): HubConnection {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n\r\n return HubConnection.create(\r\n connection,\r\n this.logger || NullLogger.instance,\r\n this.protocol || new JsonHubProtocol(),\r\n this.reconnectPolicy);\r\n }\r\n}\r\n\r\nfunction isLogger(logger: any): logger is ILogger {\r\n return logger.log !== undefined;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { ILogger } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\n\r\n/** Defines the type of a Hub Message. */\r\nexport enum MessageType {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n Invocation = 1,\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n StreamItem = 2,\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n Completion = 3,\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n StreamInvocation = 4,\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n CancelInvocation = 5,\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n Ping = 6,\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n Close = 7,\r\n}\r\n\r\n/** Defines a dictionary of string keys and string values representing headers attached to a Hub message. */\r\nexport interface MessageHeaders {\r\n /** Gets or sets the header with the specified key. */\r\n [key: string]: string;\r\n}\r\n\r\n/** Union type of all known Hub messages. */\r\nexport type HubMessage =\r\n InvocationMessage |\r\n StreamInvocationMessage |\r\n StreamItemMessage |\r\n CompletionMessage |\r\n CancelInvocationMessage |\r\n PingMessage |\r\n CloseMessage;\r\n\r\n/** Defines properties common to all Hub messages. */\r\nexport interface HubMessageBase {\r\n /** A {@link @microsoft/signalr.MessageType} value indicating the type of this message. */\r\n readonly type: MessageType;\r\n}\r\n\r\n/** Defines properties common to all Hub messages relating to a specific invocation. */\r\nexport interface HubInvocationMessage extends HubMessageBase {\r\n /** A {@link @microsoft/signalr.MessageHeaders} dictionary containing headers attached to the message. */\r\n readonly headers?: MessageHeaders;\r\n /** The ID of the invocation relating to this message.\r\n *\r\n * This is expected to be present for {@link @microsoft/signalr.StreamInvocationMessage} and {@link @microsoft/signalr.CompletionMessage}. It may\r\n * be 'undefined' for an {@link @microsoft/signalr.InvocationMessage} if the sender does not expect a response.\r\n */\r\n readonly invocationId?: string;\r\n}\r\n\r\n/** A hub message representing a non-streaming invocation. */\r\nexport interface InvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Invocation;\r\n /** The target method name. */\r\n readonly target: string;\r\n /** The target method arguments. */\r\n readonly arguments: any[];\r\n /** The target methods stream IDs. */\r\n readonly streamIds?: string[];\r\n}\r\n\r\n/** A hub message representing a streaming invocation. */\r\nexport interface StreamInvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.StreamInvocation;\r\n\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n /** The target method name. */\r\n readonly target: string;\r\n /** The target method arguments. */\r\n readonly arguments: any[];\r\n /** The target methods stream IDs. */\r\n readonly streamIds?: string[];\r\n}\r\n\r\n/** A hub message representing a single item produced as part of a result stream. */\r\nexport interface StreamItemMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.StreamItem;\r\n\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n\r\n /** The item produced by the server. */\r\n readonly item?: any;\r\n}\r\n\r\n/** A hub message representing the result of an invocation. */\r\nexport interface CompletionMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Completion;\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n /** The error produced by the invocation, if any.\r\n *\r\n * Either {@link @microsoft/signalr.CompletionMessage.error} or {@link @microsoft/signalr.CompletionMessage.result} must be defined, but not both.\r\n */\r\n readonly error?: string;\r\n /** The result produced by the invocation, if any.\r\n *\r\n * Either {@link @microsoft/signalr.CompletionMessage.error} or {@link @microsoft/signalr.CompletionMessage.result} must be defined, but not both.\r\n */\r\n readonly result?: any;\r\n}\r\n\r\n/** A hub message indicating that the sender is still active. */\r\nexport interface PingMessage extends HubMessageBase {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Ping;\r\n}\r\n\r\n/** A hub message indicating that the sender is closing the connection.\r\n *\r\n * If {@link @microsoft/signalr.CloseMessage.error} is defined, the sender is closing the connection due to an error.\r\n */\r\nexport interface CloseMessage extends HubMessageBase {\r\n /** @inheritDoc */\r\n readonly type: MessageType.Close;\r\n /** The error that triggered the close, if any.\r\n *\r\n * If this property is undefined, the connection was closed normally and without error.\r\n */\r\n readonly error?: string;\r\n\r\n /** If true, clients with automatic reconnects enabled should attempt to reconnect after receiving the CloseMessage. Otherwise, they should not. */\r\n readonly allowReconnect?: boolean;\r\n}\r\n\r\n/** A hub message sent to request that a streaming invocation be canceled. */\r\nexport interface CancelInvocationMessage extends HubInvocationMessage {\r\n /** @inheritDoc */\r\n readonly type: MessageType.CancelInvocation;\r\n /** The invocation ID. */\r\n readonly invocationId: string;\r\n}\r\n\r\n/** A protocol abstraction for communicating with SignalR Hubs. */\r\nexport interface IHubProtocol {\r\n /** The name of the protocol. This is used by SignalR to resolve the protocol between the client and server. */\r\n readonly name: string;\r\n /** The version of the protocol. */\r\n readonly version: number;\r\n /** The {@link @microsoft/signalr.TransferFormat} of the protocol. */\r\n readonly transferFormat: TransferFormat;\r\n\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * If {@link @microsoft/signalr.IHubProtocol.transferFormat} is 'Text', the `input` parameter must be a string, otherwise it must be an ArrayBuffer.\r\n *\r\n * @param {string | ArrayBuffer} input A string or ArrayBuffer containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input: string | ArrayBuffer, logger: ILogger): HubMessage[];\r\n\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string or ArrayBuffer and returns it.\r\n *\r\n * If {@link @microsoft/signalr.IHubProtocol.transferFormat} is 'Text', the result of this method will be a string, otherwise it will be an ArrayBuffer.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string | ArrayBuffer} A string or ArrayBuffer containing the serialized representation of the message.\r\n */\r\n writeMessage(message: HubMessage): string | ArrayBuffer;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport enum LogLevel {\r\n /** Log level for very low severity diagnostic messages. */\r\n Trace = 0,\r\n /** Log level for low severity diagnostic messages. */\r\n Debug = 1,\r\n /** Log level for informational diagnostic messages. */\r\n Information = 2,\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n Warning = 3,\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n Error = 4,\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n Critical = 5,\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n None = 6,\r\n}\r\n\r\n/** An abstraction that provides a sink for diagnostic messages. */\r\nexport interface ILogger {\r\n /** Called by the framework to emit a diagnostic message.\r\n *\r\n * @param {LogLevel} logLevel The severity level of the message.\r\n * @param {string} message The message.\r\n */\r\n log(logLevel: LogLevel, message: string): void;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport enum HttpTransportType {\r\n /** Specifies no transport preference. */\r\n None = 0,\r\n /** Specifies the WebSockets transport. */\r\n WebSockets = 1,\r\n /** Specifies the Server-Sent Events transport. */\r\n ServerSentEvents = 2,\r\n /** Specifies the Long Polling transport. */\r\n LongPolling = 4,\r\n}\r\n\r\n/** Specifies the transfer format for a connection. */\r\nexport enum TransferFormat {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n Text = 1,\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n Binary = 2,\r\n}\r\n\r\n/** An abstraction over the behavior of transports. This is designed to support the framework and not intended for use by applications. */\r\nexport interface ITransport {\r\n connect(url: string, transferFormat: TransferFormat): Promise;\r\n send(data: any): Promise;\r\n stop(): Promise;\r\n onreceive: ((data: string | ArrayBuffer) => void) | null;\r\n onclose: ((error?: Error) => void) | null;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\n\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger implements ILogger {\r\n /** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\n public static instance: ILogger = new NullLogger();\r\n\r\n private constructor() {}\r\n\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n public log(_logLevel: LogLevel, _message: string): void {\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n public static RecordSeparatorCode = 0x1e;\r\n public static RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n\r\n public static write(output: string): string {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n\r\n public static parse(input: string): string[] {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { IStreamSubscriber, ISubscription } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { IHttpConnectionOptions } from \"./IHttpConnectionOptions\";\r\n\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\n\r\nexport const VERSION: string = \"0.0.0-DEV_BUILD\";\r\n/** @private */\r\nexport class Arg {\r\n public static isRequired(val: any, name: string): void {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n public static isNotEmpty(val: string, name: string): void {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n\r\n public static isIn(val: any, values: any, name: string): void {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n public static get isBrowser(): boolean {\r\n return typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n public static get isWebWorker(): boolean {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n\r\n // react-native has a window but no document\r\n static get isReactNative(): boolean {\r\n return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n public static get isNode(): boolean {\r\n return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getDataDetail(data: any, includeContent: boolean): string {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n } else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n\r\n/** @private */\r\nexport function formatArrayBuffer(data: ArrayBuffer): string {\r\n const view = new Uint8Array(data);\r\n\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val: any): val is ArrayBuffer {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n\r\n/** @private */\r\nexport async function sendMessage(logger: ILogger, transportName: string, httpClient: HttpClient, url: string,\r\n content: string | ArrayBuffer, options: IHttpConnectionOptions): Promise {\r\n const headers: {[k: string]: string} = {};\r\n\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent!)}.`);\r\n\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers},\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n\r\n/** @private */\r\nexport function createLogger(logger?: ILogger | LogLevel): ILogger {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n\r\n if ((logger as ILogger).log !== undefined) {\r\n return logger as ILogger;\r\n }\r\n\r\n return new ConsoleLogger(logger as LogLevel);\r\n}\r\n\r\n/** @private */\r\nexport class SubjectSubscription implements ISubscription {\r\n private _subject: Subject;\r\n private _observer: IStreamSubscriber;\r\n\r\n constructor(subject: Subject, observer: IStreamSubscriber) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n\r\n public dispose(): void {\r\n const index: number = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport class ConsoleLogger implements ILogger {\r\n private readonly _minLevel: LogLevel;\r\n\r\n // Public for testing purposes.\r\n public out: {\r\n error(message: any): void,\r\n warn(message: any): void,\r\n info(message: any): void,\r\n log(message: any): void,\r\n };\r\n\r\n constructor(minimumLogLevel: LogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n\r\n public log(logLevel: LogLevel, message: string): void {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getUserAgentHeader(): [string, string] {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [ userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion()) ];\r\n}\r\n\r\n/** @private */\r\nexport function constructUserAgent(version: string, os: string, runtime: string, runtimeVersion: string | undefined): string {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent: string = \"Microsoft SignalR/\";\r\n\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n } else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n\r\n userAgent += `${runtime}`;\r\n\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n } else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName(): string {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion(): string | undefined {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\n\r\nfunction getRuntime(): string {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n } else {\r\n return \"Browser\";\r\n }\r\n}\r\n\r\n/** @private */\r\nexport function getErrorString(e: any): string {\r\n if (e.stack) {\r\n return e.stack;\r\n } else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n\r\n/** @private */\r\nexport function getGlobalThis(): unknown {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}","/**\n * @hidden\n */\nexport var isPresent = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n */\nexport var isBlank = function (value) { return value === null || value === undefined; };\n/**\n * @hidden\n */\nexport var isArray = function (value) { return Array.isArray(value); };\n/**\n * @hidden\n */\nexport var isFunction = function (value) { return typeof value === 'function'; };\n/**\n * @hidden\n */\nexport var isString = function (value) { return typeof value === 'string'; };\n/**\n * @hidden\n */\nexport var isTruthy = function (value) { return !!value; };\n/**\n * @hidden\n */\nexport var isNullOrEmptyString = function (value) { return isBlank(value) || value.trim().length === 0; };\n/**\n * @hidden\n */\nexport var isNotNullOrEmptyString = function (value) { return !isNullOrEmptyString(value); };\n/**\n * @hidden\n */\nexport var isNumeric = function (value) { return !isNaN(value - parseFloat(value)); };\n/**\n * @hidden\n */\nexport var isDate = function (value) { return value && value.getTime; };\n","/**\n * @hidden\n */\nexport var ifElse = function (predicate, right, left) { return function (value) { return predicate(value) ? right(value) : left(value); }; };\n/**\n * @hidden\n * Performs the right-to-left function composition. Functions should have a unary.\n */\nexport var compose = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (data) { return args.reduceRight(function (acc, curr) { return curr(acc); }, data); };\n};\n/**\n * @hidden\n */\nexport var constant = function (x) { return function () { return x; }; };\n/**\n * @hidden\n */\nexport var identity = function (x) { return x; };\n","import { isPresent } from '../utils';\n// tslint:enable:max-line-length\n/**\n * @hidden\n * Type guard for `CompositeFilterDescriptor`.\n */\nexport var isCompositeFilterDescriptor = function (source) {\n return isPresent(source.filters);\n};\n","import { isPresent } from './utils';\nvar getterCache = {};\nvar FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\n// tslint:disable-next-line:no-string-literal\ngetterCache['undefined'] = function (obj) { return obj; };\n/**\n * @hidden\n */\nexport var getter = function (field, safe) {\n var key = field + safe;\n if (getterCache[key]) {\n return getterCache[key];\n }\n var fields = [];\n field.replace(FIELD_REGEX, function (_, index, indexAccessor, field) {\n fields.push(isPresent(index) ? index : (indexAccessor || field));\n return undefined;\n });\n getterCache[key] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length; idx++) {\n result = result[fields[idx]];\n if (!isPresent(result) && safe) {\n return result;\n }\n }\n return result;\n };\n return getterCache[key];\n};\n","import * as tslib_1 from \"tslib\";\nimport { isPresent, isNotNullOrEmptyString } from './utils';\nimport { serializeFilter } from './odata-filtering.operators';\nimport { ifElse, constant } from './funcs';\nvar serializeSort = function (orderby) {\n var str = orderby\n .filter(function (sort) { return isPresent(sort.dir); })\n .map(function (sort) {\n var order = sort.field.replace(/\\./g, \"/\");\n return sort.dir === \"desc\" ? order + \" desc\" : order;\n }).join(\",\");\n return str ? \"$orderby=\" + str : str;\n};\nvar emptyString = constant('');\nvar concat = function (a) { return function (b) { return a + b; }; };\nvar serializeKey = function (strings, val) { return ifElse(isPresent, concat(strings[0]), emptyString)(val); };\nvar rules = function (settings, state) { return function (key) { return ({\n \"filter\": serializeFilter(state.filter || {}, settings),\n \"skip\": serializeKey(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject([\"$skip=\", \"\"], [\"$skip=\", \"\"])), state.skip),\n \"sort\": serializeSort(state.sort || []),\n \"take\": serializeKey(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject([\"$top=\", \"\"], [\"$top=\", \"\"])), state.take)\n}[key]); }; };\n// tslint:enable:max-line-length\n/**\n * Converts a [State]({% slug api_kendo-data-query_state %}) into an OData v4 compatible string.\n *\n * @param {State} state - The state that will be serialized.\n * @param {ODataSettings} settings - The settings that are used during the serialization.\n * @returns {string} - The serialized state.\n */\nexport var toODataString = function (state, settings) {\n if (settings === void 0) { settings = {}; }\n return (Object.keys(state)\n .map(rules(settings, state))\n .filter(isNotNullOrEmptyString)\n .join('&'));\n};\nvar templateObject_1, templateObject_2;\n","import * as tslib_1 from \"tslib\";\nimport { isCompositeFilterDescriptor } from '../filtering/filter-descriptor.interface';\nimport { isPresent, isNotNullOrEmptyString, isArray } from '../utils';\nimport { getter } from '../accessor';\nimport { compose, ifElse, identity } from '../funcs';\nimport { isStringValue, isDateValue, quote, serializeFilters, toUTC, encodeValue } from '../filter-serialization.common';\nvar toQueryString = function (values) { return values.reduce(function (acc, _a) {\n var key = _a[0], value = _a[1];\n return acc.concat([key + \"=\" + value]);\n}, []); };\nvar toObject = function (values) { return values.reduce(function (acc, _a) {\n var key = _a[0], value = _a[1];\n var _b;\n return (tslib_1.__assign({}, acc, (_b = {}, _b[key] = value, _b)));\n}, {}); };\nvar pairwise = function (key) { return function (value) { return [key, value]; }; };\nvar empty = function () { return null; };\nvar isNotEmptyArray = function (value) { return isPresent(value) && isArray(value) && value.length > 0; };\nvar has = function (accessor) { return function (value) { return isPresent(accessor(value)); }; };\nvar isNotEmpty = function (accessor) { return function (value) { return isNotEmptyArray(accessor(value)); }; };\nvar runOrEmpty = function (predicate, fn) { return ifElse(predicate, fn, empty); };\nvar calcPage = function (_a) {\n var skip = _a.skip, take = _a.take;\n return Math.floor((skip || 0) / take) + 1;\n};\nvar formatDescriptors = function (accessor, formatter) { return function (state) { return (accessor(state).map(formatter).join(\"~\")); }; };\nvar removeAfter = function (what) { return function (str) { return str.slice(0, str.indexOf(what)); }; };\nvar replace = function (patterns) {\n return compose.apply(void 0, patterns.map(function (_a) {\n var left = _a[0], right = _a[1];\n return function (s) { return s.replace(new RegExp(left, \"g\"), right); };\n }));\n};\nvar sanitizeDateLiterals = replace([[\"\\\"\", \"\"], [\":\", \"-\"]]);\nvar removeAfterDot = removeAfter(\".\");\nvar directionFormatter = function (_a) {\n var field = _a.field, _b = _a.dir, dir = _b === void 0 ? \"asc\" : _b;\n return field + \"-\" + dir;\n};\nvar aggregateFormatter = function (_a) {\n var field = _a.field, aggregate = _a.aggregate;\n return field + \"-\" + aggregate;\n};\nvar take = getter(\"take\");\nvar aggregates = getter(\"aggregates\");\nvar skip = getter(\"skip\");\nvar group = getter(\"group\");\nvar sort = getter(\"sort\", true);\nvar formatSort = formatDescriptors(sort, directionFormatter);\nvar formatGroup = formatDescriptors(group, directionFormatter);\nvar formatAggregates = formatDescriptors(aggregates, aggregateFormatter);\nvar prefixDateValue = function (value) { return \"datetime'\" + value + \"'\"; };\nvar formatDateValue = compose(prefixDateValue, removeAfterDot, sanitizeDateLiterals, JSON.stringify, toUTC);\nvar formatDate = function (_a) {\n var field = _a.field, value = _a.value, ignoreCase = _a.ignoreCase, operator = _a.operator;\n return ({\n value: formatDateValue(value),\n field: field,\n ignoreCase: ignoreCase,\n operator: operator\n });\n};\nvar normalizeSort = function (state) { return Object.assign({}, state, {\n sort: (sort(state) || []).filter(function (_a) {\n var dir = _a.dir;\n return isNotNullOrEmptyString(dir);\n })\n}); };\nvar transformSkip = compose(pairwise('page'), calcPage);\nvar transformTake = compose(pairwise('pageSize'), take);\nvar transformGroup = compose(pairwise('group'), formatGroup);\nvar transformSort = compose(pairwise('sort'), formatSort);\nvar transformAggregates = compose(pairwise('aggregate'), formatAggregates);\nvar serializePage = runOrEmpty(has(skip), transformSkip);\nvar serializePageSize = runOrEmpty(has(take), transformTake);\nvar serializeGroup = runOrEmpty(isNotEmpty(group), transformGroup);\nvar serializeAggregates = runOrEmpty(has(aggregates), transformAggregates);\nvar serializeSort = compose(runOrEmpty(isNotEmpty(sort), transformSort), normalizeSort);\nvar hasField = function (_a) {\n var field = _a.field;\n return isNotNullOrEmptyString(field);\n};\nvar filterFormatter = function (_a) {\n var field = _a.field, operator = _a.operator, value = _a.value;\n return field + \"~\" + operator + \"~\" + value;\n};\nvar dateFormatter = ifElse(isDateValue, compose(filterFormatter, formatDate), filterFormatter);\nvar typedFormatter = function (encode) { return runOrEmpty(hasField, ifElse(isStringValue, compose(filterFormatter, quote, encode ? encodeValue : identity), dateFormatter)); };\nvar join = function (_a) {\n var logic = _a.logic;\n return \"~\" + logic + \"~\";\n};\nvar serialize = function (encode) { return serializeFilters(function (filter) { return ifElse(isCompositeFilterDescriptor, serialize(encode), typedFormatter(encode))(filter); }, join); };\nvar serializeFilter = function (_a, encode) {\n var filter = _a.filter;\n if (filter && filter.filters) {\n var filters = serialize(encode)(filter);\n if (filters.length) {\n return ['filter', filters];\n }\n }\n return null;\n};\nvar rules = function (state, encode) {\n if (encode === void 0) { encode = true; }\n return function (key) { return ({\n \"aggregates\": serializeAggregates(state),\n \"filter\": serializeFilter(state, encode),\n \"group\": serializeGroup(state),\n \"skip\": serializePage(state),\n \"sort\": serializeSort(state),\n \"take\": serializePageSize(state)\n }[key]); };\n};\n/**\n * Converts a [DataSourceRequestState]({% slug api_kendo-data-query_datasourcerequeststate %}) into a string\n * that is comparable with the `DataSourceRequest` format in UI for ASP.NET MVC.\n *\n * @param {DataRequestState} state - The state that will be serialized.\n * @returns {string} - The serialized state.\n *\n * @example\n * {% platform_content angular %}\n * ```ts\n * import {\n * toDataSourceRequestString,\n * translateDataSourceResultGroups,\n * translateAggregateResults\n * } from '@progress/kendo-data-query';\n *\n * export class Service {\n * private BASE_URL: string = '...';\n *\n * constructor(private http: Http) { }\n *\n * // Omitted for brevity...\n *\n * private fetch(state: DataSourceRequestState): Observable {\n * const queryStr = `${toDataSourceRequestString(state)}`; //serialize the state\n * const hasGroups = state.group && state.group.length;\n *\n * return this.http\n * .get(`${this.BASE_URL}?${queryStr}`) //send the state to the server\n * .map(response => response.json())\n * .map(({Data, Total, AggregateResults}) => // process the response\n * ({\n * //if there are groups convert them to compatible format\n * data: hasGroups ? translateDataSourceResultGroups(Data) : Data,\n * total: Total,\n * // convert the aggregates if such exists\n * aggregateResult: translateAggregateResults(AggregateResults)\n * })\n * );\n * }\n * }\n * ```\n * {% endplatform_content %}\n *\n * {% platform_content react %}\n * ```jsx\n * import React from 'react';\n * import { toDataSourceRequestString, translateDataSourceResultGroups } from '@progress/kendo-data-query';\n *\n * export function withState(WrappedGrid) {\n * return class StatefullGrid extends React.Component {\n * constructor(props) {\n * super(props);\n * this.state = { dataState: { skip: 0, take: 20 } };\n * }\n *\n * render() {\n * return (\n * \n * );\n * }\n *\n * componentDidMount() {\n * this.fetchData(this.state.dataState);\n * }\n *\n * dataStateChange = (changeEvent) => {\n * this.setState({ dataState: changeEvent.data });\n * this.fetchData(changeEvent.data);\n * }\n *\n * fetchData(dataState) {\n * const queryStr = `${toDataSourceRequestString(dataState)}`; // Serialize the state\n * const hasGroups = dataState.group && dataState.group.length;\n *\n * const base_url = 'api/Products';\n * const init = { method: 'GET', accept: 'application/json', headers: {} };\n *\n * fetch(`${base_url}?${queryStr}`, init)\n * .then(response => response.json())\n * .then(({ data, total }) => {\n * this.setState({\n * data: hasGroups ? translateDataSourceResultGroups(data) : data,\n * total,\n * dataState\n * });\n * });\n * }\n * }\n * }\n * ```\n * {% endplatform_content %}\n */\nexport var toDataSourceRequestString = function (state) { return (toQueryString(Object.keys(state)\n .map(rules(state))\n .filter(isPresent)).join('&')); };\n/**\n * Converts a [DataSourceRequestState]({% slug api_kendo-data-query_datasourcerequeststate %}) into an object\n * that is compatible with the `DataSourceRequest` format in UI for ASP.NET MVC.\n *\n * @param {DataRequestState} state - The state that will be serialized.\n * @returns {any} - The serialized state.\n */\nexport var toDataSourceRequest = function (state) { return (toObject(Object.keys(state)\n .map(rules(state, false))\n .filter(isPresent))); };\n","import * as tslib_1 from \"tslib\";\nimport { isString, isDate } from './utils';\n/**\n * @hidden\n * Creates a single arity function which wraps the value based on the provided predicate.\n * @example\n * ```\n * wrapIf(() => ignoreCase) `tolower(${field})`\n * //ignoreCase=true -> tolower(${field})`\n * //ignoreCase=false -> ${field}`\n * ```\n */\nexport var wrapIf = function (predicate) { return function (str) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return predicate() ? \"\" + str[0] + args[0] + str[1] : args[0];\n}; };\n/**\n * @hidden\n */\nexport var toUTC = function (date) {\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n};\n/**\n * @hidden\n */\nexport var quote = function (_a) {\n var field = _a.field, value = _a.value, ignoreCase = _a.ignoreCase, operator = _a.operator;\n return ({\n value: \"'\" + value.replace(/'/g, \"''\") + \"'\",\n field: field,\n ignoreCase: ignoreCase,\n operator: operator\n });\n};\n/**\n * @hidden\n */\nexport var encodeValue = function (_a) {\n var field = _a.field, value = _a.value, ignoreCase = _a.ignoreCase, operator = _a.operator;\n return ({\n value: \"\" + encodeURIComponent(value),\n field: field,\n ignoreCase: ignoreCase,\n operator: operator\n });\n};\n/**\n * @hidden\n */\nexport var toLower = function (_a) {\n var field = _a.field, value = _a.value, ignoreCase = _a.ignoreCase, operator = _a.operator;\n return ({\n field: wrapIf(function () { return ignoreCase; })(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject([\"tolower(\", \")\"], [\"tolower(\", \")\"])), field),\n value: value,\n ignoreCase: ignoreCase,\n operator: operator\n });\n};\n/**\n * @hidden\n */\nexport var normalizeField = function (_a) {\n var field = _a.field, value = _a.value, ignoreCase = _a.ignoreCase, operator = _a.operator;\n return ({\n value: value,\n field: field.replace(/\\./g, \"/\"),\n ignoreCase: ignoreCase,\n operator: operator\n });\n};\n/**\n * @hidden\n */\nexport var isStringValue = function (x) { return isString(x.value); };\n/**\n * @hidden\n */\nexport var isDateValue = function (x) { return isDate(x.value); };\n/**\n * @hidden\n */\nexport var serializeFilters = function (map, join) { return function (filter) {\n var brackets = wrapIf(function () { return filter.filters.length > 1; });\n return brackets(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject([\"(\", \")\"], [\"(\",\n \")\"])), filter.filters\n .map(map)\n .join(join(filter)));\n}; };\nvar templateObject_1, templateObject_2;\n","import { isPresent } from '../utils';\nimport { compose } from '../funcs';\n// tslint:enable:max-line-length\nvar set = function (field, target, value) {\n target[field] = value;\n return target;\n};\nvar toCamelCase = function (str) { return str.replace(/(^[A-Z])/g, function (_, g1) { return g1.toLowerCase(); }); };\nvar prop = function (fieldName) { return function (obj) {\n var value = obj[fieldName];\n if (isPresent(value)) {\n return value;\n }\n return obj[toCamelCase(fieldName)];\n}; };\nvar member = prop(\"Member\");\nvar aggregateMethodName = prop(\"AggregateMethodName\");\nvar value = prop(\"Value\");\nvar convert = function (mapper) { return function (values) { return Object.keys(values).reduce(mapper.bind(null, values), {}); }; };\nvar translateAggregate = convert(function (source, acc, field) { return set(field.toLowerCase(), acc, source[field]); });\nvar translateAggregates = convert(function (source, acc, field) { return set(field, acc, translateAggregate(source[field])); });\nvar valueOrDefault = function (value, defaultValue) { return isPresent(value) ? value : defaultValue; };\nvar normalizeGroup = function (group) { return ({\n aggregates: group.Aggregates || group.aggregates,\n field: group.Member || group.member || group.field,\n hasSubgroups: group.HasSubgroups || group.hasSubgroups || false,\n items: group.Items || group.items,\n value: valueOrDefault(group.Key, valueOrDefault(group.key, group.value))\n}); };\nvar translateGroup = compose(function (_a) {\n var field = _a.field, hasSubgroups = _a.hasSubgroups, value = _a.value, aggregates = _a.aggregates, items = _a.items;\n return ({\n aggregates: translateAggregates(aggregates),\n field: field,\n items: hasSubgroups ? items.map(translateGroup) : items,\n value: value\n });\n}, normalizeGroup);\n// tslint:disable:max-line-length\n/**\n * Converts the grouped result, which is returned into the `Data` field of the UI for ASP.NET MVC `ToDataSourceResult` method, to a comparable format.\n * @param data - The value of the `Data` field of the response.\n * @returns {GroupResult[]} - The converted result.\n */\nexport var translateDataSourceResultGroups = function (data) { return data.map(translateGroup); };\n/**\n * Converts the `AggregateResults` field content, which is returned by the UI for ASP.NET MVC `ToDataSourceResult` method, to a comparable format.\n * @param data - The value of the `AggregateResults` field of the response.\n * @returns {AggregateResult} - The converted result.\n */\n// tslint:enable:max-line-length\nexport var translateAggregateResults = function (data) { return ((data || []).reduce(function (acc, x) { return set(member(x), acc, set(aggregateMethodName(x).toLowerCase(), acc[member(x)] || {}, value(x))); }, {})); };\n","import { isPresent, isBlank } from '../utils';\nimport { getter } from '../accessor';\nvar compare = function (a, b) {\n if (isBlank(a)) {\n return a === b ? 0 : -1;\n }\n if (isBlank(b)) {\n return 1;\n }\n if (a.localeCompare) {\n return a.localeCompare(b);\n }\n return a > b ? 1 : (a < b ? -1 : 0);\n};\nvar compareDesc = function (a, b) { return compare(b, a); };\nvar descriptorAsFunc = function (descriptor) {\n var prop = getter(descriptor.field, true);\n return function (a, b) { return (descriptor.dir === 'asc' ? compare : compareDesc)(prop(a), prop(b)); };\n};\nvar initial = function (_a, _b) { return 0; };\n// tslint:disable:max-line-length\n/**\n * Converts the `SortDescriptors` into a [Comparer]({% slug api_kendo-data-query_comparer %}) function that can be used through `Array.sort`. If multiple descriptors are provided, sorting is applied in a right-to-left order.\n * @param {SortDescriptor[]} descriptors - The descriptors which will be converted.\n * @returns {Comparer} - The produced function.\n *\n * @example\n * ```ts\n * import { composeSortDescriptors } from '@progress/kendo-data-query';\n *\n * const data = [{ name: \"Pork\" }, { name: \"Pepper\" }, { name: \"Beef\" } ];\n * const comparer = composeSortDescriptors([{ field: \"name\", dir: \"asc\" }]);\n * const result = data.sort(comparer);\n * // output: [{ name: \"Beef\" }, { name: \"Pepper\" }, { name: \"Pork\" }];\n * ```\n */\n// tslint:enable:max-line-length\nexport var composeSortDescriptors = function (descriptors) { return (descriptors\n .filter(function (x) { return isPresent(x.dir); })\n .map(function (descriptor) { return descriptorAsFunc(descriptor); })\n .reduce(function (acc, curr) { return function (a, b) { return acc(a, b) || curr(a, b); }; }, initial)); };\n","import { isPresent, isNumeric, isDate } from './utils';\nimport { getter } from './accessor';\nvar valueToString = function (value) {\n value = isPresent(value) && value.getTime ? value.getTime() : value;\n return value + \"\";\n};\n/**\n * @hidden\n */\nexport var groupCombinator = function (field) {\n var prop = getter(field, true);\n var position = 0;\n return function (agg, value) {\n agg[field] = agg[field] || {};\n var groupValue = prop(value);\n var key = valueToString(groupValue);\n var values = agg[field][key] || { __position: position++, aggregates: {}, items: [], value: groupValue };\n values.items.push(value);\n agg[field][key] = values;\n return agg;\n };\n};\n/**\n * @hidden\n */\nexport var expandAggregates = function (result) {\n if (result === void 0) { result = {}; }\n Object.keys(result).forEach(function (field) {\n var aggregates = result[field];\n Object.keys(aggregates).forEach(function (aggregate) {\n aggregates[aggregate] = aggregates[aggregate].result();\n });\n });\n return result;\n};\nvar aggregatesFuncs = function (name) { return ({\n average: function () {\n var value = 0;\n var count = 0;\n return {\n calc: function (curr) {\n if (isNumeric(curr)) {\n value += curr;\n count++;\n }\n else {\n value = curr;\n }\n },\n result: function () { return isNumeric(value) ? value / count : value; }\n };\n },\n count: function () {\n var state = 0;\n return {\n calc: function () { return state++; },\n result: function () { return state; }\n };\n },\n max: function () {\n var state = Number.NEGATIVE_INFINITY;\n return {\n calc: function (value) {\n state = isNumeric(state) || isDate(state) ? state : value;\n if (state < value && (isNumeric(value) || isDate(value))) {\n state = value;\n }\n },\n result: function () { return state; }\n };\n },\n min: function () {\n var state = Number.POSITIVE_INFINITY;\n return {\n calc: function (value) {\n state = isNumeric(state) || isDate(state) ? state : value;\n if (state > value && (isNumeric(value) || isDate(value))) {\n state = value;\n }\n },\n result: function () { return state; }\n };\n },\n sum: function () {\n var state = 0;\n return {\n calc: function (value) {\n value = isPresent(value) ? value : 0;\n state += value;\n },\n result: function () { return state; }\n };\n }\n}[name]()); };\n/**\n * @hidden\n */\nexport var aggregatesCombinator = function (descriptors) {\n var functions = descriptors.map(function (descriptor) {\n var fieldAccessor = getter(descriptor.field, true);\n var aggregateName = (descriptor.aggregate || \"\").toLowerCase();\n var aggregateAccessor = getter(aggregateName, true);\n return function (state, value) {\n var fieldAggregates = state[descriptor.field] || {};\n var aggregateFunction = aggregateAccessor(fieldAggregates)\n || aggregatesFuncs(aggregateName);\n aggregateFunction.calc(fieldAccessor(value));\n fieldAggregates[descriptor.aggregate] = aggregateFunction;\n state[descriptor.field] = fieldAggregates;\n return state;\n };\n });\n return function (state, value) { return functions.reduce(function (agg, calc) { return calc(agg, value); }, state); };\n};\n/**\n * @hidden\n * Adds the value to the `arr` and produces a new array.\n *\n * > The original array will be modified.\n */\nexport var concat = function (arr, value) {\n arr.push(value);\n return arr;\n};\n/**\n * @hidden\n * Returns a reducer that will apply the specified transformation to the value.\n */\nexport var map = function (transform) { return (function (reduce) { return (function (acc, curr, index) { return reduce(acc, transform(curr, index)); }); }); };\n/**\n * @hidden\n * Returns a reducer that will filter out items which do not match the `Predicate`.\n */\nexport var filter = function (predicate) { return (function (reduce) { return (function (acc, curr) { return predicate(curr) ? reduce(acc, curr) : acc; }); }); };\n/**\n * @hidden\n */\nexport var isTransformerResult = function (source) {\n return isPresent(source.__value);\n};\nvar reduced = function (x) {\n if (isTransformerResult(x)) {\n return x;\n }\n return {\n __value: x,\n reduced: true\n };\n};\n/**\n * @hidden\n * Returns a reducer that will take the specified number of items.\n */\nexport var take = function (count) { return (function (reduce) { return (function (acc, curr) { return count-- > 0 ? reduce(acc, curr) : reduced(acc); }); }); };\n/**\n * @hidden\n * Returns a reducer that will take the specified number of items.\n */\nexport var takeWhile = function (predicate) { return (function (reduce) { return (function (acc, curr) { return predicate(curr) ? reduce(acc, curr) : reduced(acc); }); }); };\n/**\n * @hidden\n * Returns a reducer that will skip the specified number of items.\n */\nexport var skip = function (count) { return (function (reduce) { return (function (acc, curr) { return count-- <= 0 ? reduce(acc, curr) : acc; }); }); };\n/**\n * @hidden\n * Transforms the data by applying the supplied transformer.\n */\nexport var exec = function (transform, initialValue, data) {\n var result = initialValue;\n for (var idx = 0, length_1 = data.length; idx < length_1; idx++) {\n result = transform(result, data[idx], idx);\n if (isTransformerResult(result)) {\n result = result.__value;\n break;\n }\n }\n return result;\n};\n","import { isPresent, isString, isArray } from '../utils';\nimport { isCompositeFilterDescriptor } from './filter-descriptor.interface';\nvar operatorMap = function (key) { return ({\n \"!=\": \"neq\",\n \"<\": \"lt\",\n \"<=\": \"lte\",\n \"==\": \"eq\",\n \">\": \"gt\",\n \">=\": \"gte\",\n equal: \"eq\",\n equals: \"eq\",\n equalto: \"eq\",\n ge: \"gte\",\n greater: \"gt\",\n greaterthan: \"gt\",\n greaterthanequal: \"gte\",\n isempty: \"isempty\",\n isequalto: \"eq\",\n isgreaterthan: \"gt\",\n isgreaterthanorequalto: \"gte\",\n islessthan: \"lt\",\n islessthanorequalto: \"lte\",\n isnotempty: \"isnotempty\",\n isnotequalto: \"neq\",\n isnull: \"isnull\",\n le: \"lte\",\n less: \"lt\",\n lessthan: \"lt\",\n lessthanequal: \"lte\",\n ne: \"neq\",\n notequal: \"neq\",\n notequals: \"neq\",\n notequalto: \"neq\",\n notsubstringof: \"doesnotcontain\"\n}[key.toLowerCase()] || key); };\nvar normalizeOperator = function (descriptor) {\n if (descriptor.filters) {\n descriptor.filters = descriptor.filters.map(function (filter) {\n var result = Object.assign({}, filter);\n if (!isCompositeFilterDescriptor(filter) && isString(filter.operator)) {\n result.operator = operatorMap(filter.operator);\n }\n if (isCompositeFilterDescriptor(filter)) {\n normalizeOperator(result);\n }\n return result;\n });\n }\n};\nvar normalizeDescriptor = function (descriptor) {\n if (!isCompositeFilterDescriptor(descriptor)) {\n return {\n filters: isArray(descriptor) ? descriptor : [descriptor],\n logic: \"and\"\n };\n }\n return Object.assign({}, descriptor);\n};\n// tslint:disable:max-line-length\n/**\n * Converts a [FilterDescriptor]({% slug api_kendo-data-query_filterdescriptor %}) into a [CompositeFilterDescriptor]({% slug api_kendo-data-query_compositefilterdescriptor %}). If a `CompositeFilterDescriptor` is passed, no modifications will be made.\n *\n * @param {CompositeFilterDescriptor | FilterDescriptor} descriptor - The descriptor that will be normalized.\n * @returns {CompositeFilterDescriptor} - The normalized descriptor.\n */\n// tslint:enable:max-line-length\nexport var normalizeFilters = function (descriptor) {\n if (isPresent(descriptor)) {\n descriptor = normalizeDescriptor(descriptor);\n normalizeOperator(descriptor);\n }\n return descriptor;\n};\n","import { exec, map, aggregatesCombinator, expandAggregates } from '../transducers';\nvar identity = map(function (x) { return x; });\n// tslint:disable:max-line-length\n/**\n * Applies the specified [AggregateDescriptors]({% slug api_kendo-data-query_aggregatedescriptor %}) to the data. Returns an [AggregateResult]({% slug api_kendo-data-query_aggregateresult %}) instance.\n *\n * @example\n * ```ts\n * const data = [\n * { unitPrice: 23, unitsInStock: 21 },\n * { unitPrice: 10, unitsInStock: 12 },\n * { unitPrice: 20, unitsInStock: 33 }\n * ];\n *\n * const result = aggregateBy(data, [\n * { aggregate: \"sum\", field: \"unitPrice\" },\n * { aggregate: \"sum\", field: \"unitsInStock\" }\n * ]);\n *\n * //output:\n * // {\n * // \"unitPrice\": { \"sum\": 53 },\n * // \"unitsInStock\": { \"sum\": 66 }\n * // }\n * ```\n * @param {T[]} data - The data on which the calculation will be executed.\n * @param {AggregateDescriptor[]} descriptors - The aggregate operations that will be executed.\n * @param {any} transformers - For internal use.\n * @returns {AggregateResult} - The aggregated result.\n * For more information, refer to the [aggregateresult]({% slug api_kendo-data-query_aggregateresult %}) configuration.\n */\n// tslint:enable:max-line-length\nexport var aggregateBy = function (data, descriptors, transformers) {\n if (descriptors === void 0) { descriptors = []; }\n if (transformers === void 0) { transformers = identity; }\n var initialValue = {};\n if (!descriptors.length) {\n return initialValue;\n }\n var result = exec(transformers(aggregatesCombinator(descriptors)), initialValue, data);\n return expandAggregates(result);\n};\n","import { isCompositeFilterDescriptor } from \"./filter-descriptor.interface\";\nimport { getter } from \"../accessor\";\nimport { isFunction, isPresent, isDate, isString, isBlank, isNumeric } from \"../utils\";\nvar logic = {\n \"or\": {\n concat: function (acc, fn) { return function (a) { return acc(a) || fn(a); }; },\n identity: function () { return false; }\n },\n \"and\": {\n concat: function (acc, fn) { return function (a) { return acc(a) && fn(a); }; },\n identity: function () { return true; }\n }\n};\nvar operatorsMap = {\n contains: function (a, b) { return (a || \"\").indexOf(b) >= 0; },\n doesnotcontain: function (a, b) { return (a || \"\").indexOf(b) === -1; },\n doesnotendwith: function (a, b) { return (a || \"\").indexOf(b, (a || \"\").length - (b || \"\").length) < 0; },\n doesnotstartwith: function (a, b) { return (a || \"\").lastIndexOf(b, 0) === -1; },\n endswith: function (a, b) { return (a || \"\").indexOf(b, (a || \"\").length - (b || \"\").length) >= 0; },\n eq: function (a, b) { return a === b; },\n gt: function (a, b) { return a > b; },\n gte: function (a, b) { return a >= b; },\n isempty: function (a) { return a === ''; },\n isnotempty: function (a) { return a !== ''; },\n isnotnull: function (a) { return isPresent(a); },\n isnull: function (a) { return isBlank(a); },\n lt: function (a, b) { return a < b; },\n lte: function (a, b) { return a <= b; },\n neq: function (a, b) { return a != b; },\n startswith: function (a, b) { return (a || \"\").lastIndexOf(b, 0) === 0; }\n};\nvar dateRegExp = /^\\/Date\\((.*?)\\)\\/$/;\nvar convertValue = function (value, ignoreCase) {\n if (value != null && isString(value)) {\n var date = dateRegExp.exec(value);\n if (date) {\n return new Date(+date[1]).getTime();\n }\n else if (ignoreCase) {\n return value.toLowerCase();\n }\n }\n else if (value != null && isDate(value)) {\n return value.getTime();\n }\n return value;\n};\nvar typedGetter = function (prop, value, ignoreCase) {\n if (!isPresent(value)) {\n return prop;\n }\n var acc = prop;\n if (isString(value)) {\n var date = dateRegExp.exec(value);\n if (date) {\n value = new Date(+date[1]);\n }\n else {\n acc = function (a) {\n var x = prop(a);\n if (typeof x === 'string' && ignoreCase) {\n return x.toLowerCase();\n }\n else {\n return isNumeric(x) ? x + \"\" : x;\n }\n };\n }\n }\n if (isDate(value)) {\n return function (a) {\n var x = acc(a);\n return isDate(x) ? x.getTime() : x;\n };\n }\n return acc;\n};\nvar transformFilter = function (_a) {\n var field = _a.field, ignoreCase = _a.ignoreCase, value = _a.value, operator = _a.operator;\n field = !isPresent(field) ? function (a) { return a; } : field;\n ignoreCase = isPresent(ignoreCase) ? ignoreCase : true;\n var itemProp = typedGetter(isFunction(field) ? field : getter(field, true), value, ignoreCase);\n value = convertValue(value, ignoreCase);\n var op = isFunction(operator) ? operator : operatorsMap[operator];\n return function (a) { return op(itemProp(a), value, ignoreCase); };\n};\n/**\n * @hidden\n */\nexport var transformCompositeFilter = function (filter) {\n var combiner = logic[filter.logic];\n return filter.filters\n .filter(isPresent)\n .map(function (x) { return isCompositeFilterDescriptor(x) ? transformCompositeFilter(x) : transformFilter(x); })\n .reduce(combiner.concat, combiner.identity);\n};\n","import { isPresent } from '../utils';\nimport { isCompositeFilterDescriptor } from './filter-descriptor.interface';\nimport { normalizeFilters } from './filter.operators';\nimport { transformCompositeFilter } from \"./filter-no-eval\";\n// tslint:disable:max-line-length\n/**\n * Creates a [Predicate]({% slug api_kendo-data-query_predicate %}) function for the specified [CompositeFilterDescriptor]({% slug api_kendo-data-query_compositefilterdescriptor %}).\n *\n * @param {CompositeFilterDescriptor} descriptor - The descriptor for which the predicate is created.\n * @returns {Predicate} - The created function instance.\n *\n * @example\n * ```ts\n * import { compileFilter } from '@progress/kendo-data-query';\n *\n * const data = [{ name: \"Pork\" }, { name: \"Pepper\" }, { name: \"Beef\" } ];\n * const predicate = compileFilter({ logic: \"and\", filters: [{ field: \"name\", operator: \"startswith\", value: \"P\" }] });\n * const result = data.filter(predicate);\n *\n * ```\n */\n// tslint:enable:max-line-length\nexport var compileFilter = function (descriptor) {\n if (!descriptor || descriptor.filters.length === 0) {\n return function () { return true; };\n }\n return transformCompositeFilter(descriptor);\n};\n// tslint:disable:max-line-length\n/**\n * Filters the provided array according to the specified [CompositeFilterDescriptor]({% slug api_kendo-data-query_compositefilterdescriptor %}).\n *\n * @param {T[]} data - The data that will be filtered.\n * @param {(CompositeFilterDescriptor | FilterDescriptor)} descriptor - The filter criteria that will be applied.\n * @returns {T[]} - The filtered data.\n *\n * @example\n * ```ts\n * import { filterBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = filterBy(data, {\n * logic: 'and',\n * filters: [\n * { field: \"name\", operator: \"startswith\", value: \"p\", ignoreCase: true },\n * { field: \"subcategory\", operator: \"eq\", value: \"Meat\" },\n * ]\n * });\n *\n * // output:\n * // [{ \"name\": \"Pork\", \"category\": \"Food\", \"subcategory\": \"Meat\" }]\n * ```\n */\n// tslint:enable:max-line-length\nexport var filterBy = function (data, descriptor) {\n if (!isPresent(descriptor) || (isCompositeFilterDescriptor(descriptor) && descriptor.filters.length === 0)) {\n return data;\n }\n return data.filter(compileFilter(normalizeFilters(descriptor)));\n};\n","var merge = function (data, left, middle, right, compare) {\n var leftLength = middle - left;\n var rightLength = right - middle;\n var temp = [];\n for (var idx = 0; idx < leftLength; idx++) {\n temp.push(data[left + idx]);\n }\n var cursor1 = 0;\n var cursor2 = middle;\n var dest = left;\n do {\n if (compare(data[cursor2], temp[cursor1]) < 0) {\n data[dest++] = data[cursor2++];\n rightLength--;\n }\n else {\n data[dest++] = temp[cursor1++];\n leftLength--;\n }\n } while (rightLength > 0 && leftLength > 0);\n while (leftLength) {\n data[dest++] = temp[cursor1++];\n leftLength--;\n }\n while (rightLength) {\n data[dest++] = data[cursor2++];\n rightLength--;\n }\n};\n/**\n * @hidden\n */\nexport var sort = function (data, start, end, compare) {\n if (end - start < 2) {\n return;\n }\n var mid = (start + end) >>> 1; // tslint:disable-line:no-bitwise\n sort(data, start, mid, compare);\n sort(data, mid, end, compare);\n merge(data, start, mid, end, compare);\n};\n","import { exec, map, groupCombinator } from '../transducers';\nimport { isArray, isPresent } from '../utils';\nimport { aggregateBy } from './aggregate.operators';\nimport { filterBy } from '../filtering/filter-expression.factory';\n/**\n * @hidden\n */\nexport var normalizeGroups = function (descriptors) {\n descriptors = isArray(descriptors) ? descriptors : [descriptors];\n return descriptors.map(function (x) { return Object.assign({ dir: \"asc\" }, x); });\n};\nvar identity = map(function (x) { return x; });\n/**\n * Groups the provided data according to the specified descriptors.\n *\n * @param {Array} data - The data that will be grouped.\n * @param {GroupDescriptor[]} descriptors - The descriptors.\n * @param {any} transformers - For internal use.\n * @param {Array} originalData - For internal use.\n * @returns {(Array> | T[])} - The grouped data.\n *\n * @example\n * ```ts\n *\n * import { groupBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = groupBy(data, [{ field: \"subcategory\" }]);\n * ```\n */\nexport var groupBy = function (data, descriptors, transformers, originalData) {\n if (descriptors === void 0) { descriptors = []; }\n if (transformers === void 0) { transformers = identity; }\n if (originalData === void 0) { originalData = data; }\n descriptors = normalizeGroups(descriptors);\n if (!descriptors.length) {\n return data;\n }\n var descriptor = descriptors[0];\n var initialValue = {};\n var view = exec(transformers(groupCombinator(descriptor.field)), initialValue, data);\n var result = [];\n Object.keys(view).forEach(function (field) {\n Object.keys(view[field]).forEach(function (value) {\n var group = view[field][value];\n var aggregateResult = {};\n var filteredData = originalData;\n if (isPresent(descriptor.aggregates)) {\n filteredData = filterBy(originalData, {\n field: descriptor.field,\n ignoreCase: false,\n operator: 'eq',\n value: group.value\n });\n aggregateResult = aggregateBy(filteredData, descriptor.aggregates);\n }\n result[group.__position] = {\n aggregates: aggregateResult,\n field: field,\n items: descriptors.length > 1 ?\n groupBy(group.items, descriptors.slice(1), identity, filteredData)\n : group.items,\n value: group.value\n };\n });\n });\n return result;\n};\n","import { isPresent, isString } from './utils';\nimport { composeSortDescriptors } from './sorting/sort-array.operator';\nimport { groupBy, normalizeGroups } from './grouping/group.operators';\nimport { normalizeFilters } from './filtering/filter.operators';\nimport { compileFilter } from './filtering/filter-expression.factory';\nimport { exec, skip, take, filter, concat } from './transducers';\nimport { getter } from './accessor';\nimport { compose } from './funcs';\nimport { sort } from './sorting/sort';\n/**\n * Orders the specified array according to the provided sort descriptors.\n *\n * @param {T[]} data - The data to be sorted.\n * @param {SortDescriptor[]} descriptors - The descriptors by which the data will be sorted.\n * @returns {T[]} - The sorted data.\n *\n * @example\n * ```ts\n * import { orderBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = orderBy(data, [{ field: \"name\", dir: \"asc\" }]);\n * ```\n */\nexport var orderBy = function (data, descriptors) {\n if (descriptors.some(function (x) { return isPresent(x.dir); })) {\n data = data.slice(0);\n var comparer = composeSortDescriptors(descriptors);\n sort(data, 0, data.length, comparer);\n }\n return data;\n};\nvar defaultComparer = function (a, b) { return a === b; };\nvar normalizeComparer = function (comparer) {\n if (isString(comparer)) {\n var accessor_1 = getter(comparer);\n comparer = function (a, b) { return accessor_1(a) === accessor_1(b); };\n }\n return comparer;\n};\nvar _distinct = function (data, comparer) {\n return data.filter(function (x, idx, xs) { return xs.findIndex(comparer.bind(null, x)) === idx; });\n};\n/**\n * Reduces the provided array so it contains only unique values.\n *\n * @param {T[]} data - The array that will be reduced.\n * @param {(Comparer | string)} comparer - An optional custom comparer function or the field name that will be used for comparison.\n * @returns {T[]} - The reduced data.\n *\n * @example\n * ```ts\n * import { distinct } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = distinct(data, \"subcategory\");\n *\n * // output:\n * // result => [\n * // { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * // { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" }\n * // ];\n * ```\n */\nexport var distinct = function (data, comparer) {\n if (comparer === void 0) { comparer = defaultComparer; }\n return _distinct(data, normalizeComparer(comparer));\n};\n/**\n * @hidden\n */\nexport var count = function (data, predicate) {\n var counter = 0;\n for (var idx = 0, length_1 = data.length; idx < length_1; idx++) {\n if (predicate(data[idx])) {\n counter++;\n }\n }\n return counter;\n};\n/**\n * @hidden\n */\nexport var limit = function (data, predicate) {\n if (predicate) {\n return data.filter(predicate);\n }\n return data;\n};\n/**\n * Applies the specified operation descriptors to the data.\n *\n * @param {T[]} data - The data to be processed.\n * @param {State} state - The operation descriptors that will be applied to the data.\n * @returns {DataResult} - The processed data.\n *\n * @example\n * ```ts\n *\n * const result = process(data, {\n * skip: 10,\n * take: 20,\n * group: [{\n * field: 'category.categoryName',\n * aggregates: [\n * { aggregate: \"sum\", field: \"unitPrice\" },\n * { aggregate: \"sum\", field: \"unitsInStock\" }\n * ]\n * }],\n * sort: [{ field: 'productName', dir: 'desc' }],\n * filter: {\n * logic: \"or\",\n * filters: [\n * { field: \"discontinued\", operator: \"eq\", value: true },\n * { field: \"unitPrice\", operator: \"lt\", value: 22 }\n * ]\n * }\n * });\n *\n * ```\n */\nexport var process = function (data, state) {\n var skipCount = state.skip, takeCount = state.take, filterDescriptor = state.filter, sort = state.sort, group = state.group;\n var sortDescriptors = normalizeGroups(group || []).concat(sort || []);\n if (sortDescriptors.length) {\n data = orderBy(data, sortDescriptors);\n }\n var hasFilters = isPresent(filterDescriptor) && filter.length;\n var hasGroups = isPresent(group) && group.length;\n if (!hasFilters && !hasGroups) {\n return {\n data: takeCount ? data.slice(skipCount, skipCount + takeCount) : data,\n total: data.length\n };\n }\n var total;\n var transformers = [];\n var predicate;\n if (hasFilters) {\n predicate = compileFilter(normalizeFilters(filterDescriptor));\n total = count(data, predicate);\n transformers.push(filter(predicate));\n }\n else {\n total = data.length;\n }\n if (isPresent(skipCount) && isPresent(takeCount)) {\n transformers.push(skip(skipCount));\n transformers.push(take(takeCount));\n }\n if (transformers.length) {\n var transform = compose.apply(void 0, transformers);\n var result = hasGroups ?\n groupBy(data, group, transform, limit(data, predicate)) :\n exec(transform(concat), [], data);\n return { data: result, total: total };\n }\n return {\n data: hasGroups ? groupBy(data, group) : data,\n total: total\n };\n};\n","export default {\n \"bottom\": \"bottom\",\n \"center\": \"center\",\n \"middle\": \"middle\",\n \"left\": \"left\",\n \"right\": \"right\",\n \"top\": \"top\"\n};\n","import point from './align-point';\n\nvar align = function (options) {\n var anchorRect = options.anchorRect;\n var anchorAlign = options.anchorAlign;\n var elementRect = options.elementRect;\n var elementAlign = options.elementAlign;\n var margin = options.margin; if ( margin === void 0 ) margin = {};\n var anchorHorizontal = anchorAlign.horizontal;\n var anchorVertical = anchorAlign.vertical;\n var elementHorizontal = elementAlign.horizontal;\n var elementVertical = elementAlign.vertical;\n\n var horizontalMargin = margin.horizontal || 0;\n var verticalMargin = margin.vertical || 0;\n\n var top = anchorRect.top;\n var left = anchorRect.left;\n\n if (anchorVertical === point.bottom) {\n top += anchorRect.height;\n }\n\n if (anchorVertical === point.center || anchorVertical === point.middle) {\n top += Math.round(anchorRect.height / 2);\n }\n\n if (elementVertical === point.bottom) {\n top -= elementRect.height;\n verticalMargin *= -1;\n }\n\n if (elementVertical === point.center || elementVertical === point.middle) {\n top -= Math.round(elementRect.height / 2);\n verticalMargin *= -1;\n }\n\n if (anchorHorizontal === point.right) {\n left += anchorRect.width;\n }\n\n if (anchorHorizontal === point.center || anchorHorizontal === point.middle) {\n left += Math.round(anchorRect.width / 2);\n }\n\n if (elementHorizontal === point.right) {\n left -= elementRect.width;\n horizontalMargin *= -1;\n }\n\n if (elementHorizontal === point.center || elementHorizontal === point.middle) {\n left -= Math.round(elementRect.width / 2);\n horizontalMargin *= -1;\n }\n\n return {\n top: top + verticalMargin,\n left: left + horizontalMargin\n };\n};\n\nexport default align;\n","export default function addScroll(rect, scroll) {\n return {\n top: rect.top + scroll.y,\n left: rect.left + scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","export default function applyLocationOffset(rect, location, isOffsetBody) {\n var top = rect.top;\n var left = rect.left;\n\n if (isOffsetBody) {\n left = 0;\n top = 0;\n }\n\n return {\n top: top + location.top,\n left: left + location.left,\n height: rect.height,\n width: rect.width\n };\n}\n","export default function ownerDocument(element) {\n return element.ownerDocument || element.document || element;\n}\n","import ownerDocument from './owner-document';\n\nvar getWindow = function (element) { return ownerDocument(element).defaultView; };\n\nexport default getWindow;\n","import ownerDocument from './owner-document';\n\nvar getDocument = function (element) { return ownerDocument(element).documentElement; };\n\nexport default getDocument;\n","var cachedWidth = 0;\n\nexport default function scrollbarWidth() {\n if (!cachedWidth && typeof document !== 'undefined') {\n var div = document.createElement(\"div\");\n\n div.style.cssText = \"overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block\";\n div.innerHTML = \" \";\n document.body.appendChild(div);\n\n cachedWidth = div.offsetWidth - div.scrollWidth;\n\n document.body.removeChild(div);\n }\n\n return cachedWidth;\n}\n","import wnd from './window';\nimport getDocument from './document';\nimport scrollbarWidth from './scrollbar-width';\n\nexport default function windowViewport(element) {\n var win = wnd(element);\n var document = getDocument(element);\n var result = {\n height: win.innerHeight,\n width: win.innerWidth\n };\n\n if (document.scrollHeight - document.clientHeight > 0) {\n result.width -= scrollbarWidth();\n }\n\n return result;\n}\n","import windowViewport from './window-viewport';\n\nvar boundingOffset = function (element) {\n if (!element.getBoundingClientRect) {\n var viewport = windowViewport(element);\n return {\n bottom: viewport.height,\n left: 0,\n right: viewport.width,\n top: 0\n };\n }\n\n var ref = element.getBoundingClientRect();\n var bottom = ref.bottom;\n var left = ref.left;\n var right = ref.right;\n var top = ref.top;\n\n return {\n bottom: bottom,\n left: left,\n right: right,\n top: top\n };\n};\n\nexport default boundingOffset;\n","import documentElement from './document';\n\nvar offsetParent = function (element) {\n var offsetParent = element.offsetParent;\n\n while (offsetParent && offsetParent.style.position === \"static\") {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || documentElement(element);\n};\n\nexport default offsetParent;\n","import offsetParent from './offset-parent';\n\nvar isBodyOffset = function (element) { return (offsetParent(element) === element.ownerDocument.body); };\n\nexport default isBodyOffset;\n","var rectOfHiddenElement = function (element) {\n var ref = element.style;\n var display = ref.display;\n var left = ref.left;\n var position = ref.position;\n\n element.style.display = '';\n element.style.left = '-10000px';\n element.style.position = 'absolute';\n\n var rect = element.getBoundingClientRect();\n\n element.style.display = display;\n element.style.left = left;\n element.style.position = position;\n\n return rect;\n};\n\nvar offset = function (element) {\n var rect = element.getBoundingClientRect();\n var left = rect.left;\n var top = rect.top;\n\n if (!rect.height && !rect.width) {\n rect = rectOfHiddenElement(element);\n }\n\n return {\n top: top,\n left: left,\n height: rect.height,\n width: rect.width\n };\n};\n\nexport default offset;\n","export default function (element, until) {\n var result = [];\n var next = element.parentNode;\n\n while (next) {\n result.push(next);\n\n if (next === until) { break; }\n\n next = next.parentNode;\n }\n\n return result;\n};\n","import docElement from './document';\nimport wnd from './window';\n\nexport default function scrollPosition(element) {\n var documentElement = docElement(element);\n var win = wnd(element);\n\n return {\n x: win.pageXOffset || documentElement.scrollLeft || 0,\n y: win.pageYOffset || documentElement.scrollTop || 0\n };\n}\n","import scrollPosition from './scroll-position';\n\nexport default function (element) {\n if (element === (element.ownerDocument || {}).body) {\n return scrollPosition(element);\n }\n\n return {\n x: element.scrollLeft,\n y: element.scrollTop\n };\n};\n","import elementScrollPosition from './element-scroll-position';\nimport parentScrollPosition from './parent-scroll-position';\n\nexport default function (offsetParentElement, element) { return ( // eslint-disable-line no-arrow-condition\n offsetParentElement ? elementScrollPosition(offsetParentElement) : parentScrollPosition(element)\n); };\n","import offsetParent from './offset-parent';\nimport elementScrollPosition from './element-scroll-position';\n\nexport default function parentScrollPosition(element) {\n var parent = offsetParent(element);\n\n return parent ? elementScrollPosition(parent) : { x: 0, y: 0 };\n}\n","import offsetParent from './offset-parent';\nimport offsetRect from './offset';\nimport wnd from './window';\n\nvar position = function (element, parent) {\n var win = wnd(element);\n var elementStyles = win.getComputedStyle(element);\n var offset = offsetRect(element);\n var parentElement = parent || offsetParent(element);\n\n var ownerDocument = element.ownerDocument;\n var useRelative = parentElement !== ownerDocument.body && parentElement !== ownerDocument.documentElement;\n\n var parentOffset = { top: 0, left: 0 };\n\n if (elementStyles.position !== \"fixed\" && useRelative) {\n var parentStyles = win.getComputedStyle(parentElement);\n\n parentOffset = offsetRect(parentElement);\n parentOffset.top += parseInt(parentStyles.borderTopWidth, 10);\n parentOffset.left += parseInt(parentStyles.borderLeftWidth, 10);\n }\n\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left,\n height: offset.height,\n width: offset.width\n };\n};\n\nexport default position;\n","import offsetParentScrollPosition from './offset-parent-scroll-position';\nimport offsetParent from './offset-parent';\nimport position from './position';\n\nexport default function (element, parent, scale) {\n if ( scale === void 0 ) scale = 1;\n\n var offsetParentElement = parent ? offsetParent(parent) : null;\n var ref = position(element, offsetParentElement);\n var top = ref.top;\n var left = ref.left;\n var height = ref.height;\n var width = ref.width;\n var ref$1 = offsetParentScrollPosition(offsetParentElement, element);\n var x = ref$1.x;\n var y = ref$1.y;\n var ownerDocument = element.ownerDocument;\n var positionScale = offsetParentElement === ownerDocument.body || offsetParentElement === ownerDocument.documentElement ? 1 : scale;\n\n return {\n top: top + y * positionScale,\n left: left + x * positionScale,\n height: height,\n width: width\n };\n};\n","export default function removeScroll(rect, scroll) {\n return {\n top: rect.top - scroll.y,\n left: rect.left - scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","export default {\n \"fit\": \"fit\",\n \"flip\": \"flip\",\n \"none\": \"none\"\n};\n","import alignPoint from './align-point';\nimport collision from './collision';\n\nvar fit = function(position, size, viewPortSize) {\n var output = 0;\n\n if (position + size > viewPortSize) {\n output = viewPortSize - (position + size);\n }\n\n if (position < 0) {\n output = -position;\n }\n\n return output;\n};\n\nvar flip = function(ref) {\n var offset = ref.offset;\n var size = ref.size;\n var anchorSize = ref.anchorSize;\n var viewPortSize = ref.viewPortSize;\n var anchorAlignPoint = ref.anchorAlignPoint;\n var elementAlignPoint = ref.elementAlignPoint;\n var margin = ref.margin;\n\n var output = 0;\n\n var isPositionCentered = elementAlignPoint === alignPoint.center || elementAlignPoint === alignPoint.middle;\n var isOriginCentered = anchorAlignPoint === alignPoint.center || anchorAlignPoint === alignPoint.middle;\n var marginToAdd = 2 * margin; //2x to keep margin after flip\n\n if (elementAlignPoint !== anchorAlignPoint && !isPositionCentered && !isOriginCentered) {\n var isBeforeAnchor = anchorAlignPoint === alignPoint.top || anchorAlignPoint === alignPoint.left;\n if (offset < 0 && isBeforeAnchor) {\n output = size + anchorSize + marginToAdd;\n if (offset + output + size > viewPortSize) {\n output = 0; //skip flip\n }\n } else if (offset >= 0 && !isBeforeAnchor) {\n if (offset + size > viewPortSize) {\n output += -(anchorSize + size + marginToAdd);\n }\n\n if (offset + output < 0) {\n output = 0; //skip flip\n }\n }\n }\n\n return output;\n};\n\nvar restrictToView = function (options) {\n var anchorRect = options.anchorRect;\n var anchorAlign = options.anchorAlign;\n var elementRect = options.elementRect;\n var elementAlign = options.elementAlign;\n var collisions = options.collisions;\n var viewPort = options.viewPort;\n var margin = options.margin; if ( margin === void 0 ) margin = {};\n var elementTop = elementRect.top;\n var elementLeft = elementRect.left;\n var elementHeight = elementRect.height;\n var elementWidth = elementRect.width;\n var viewPortHeight = viewPort.height;\n var viewPortWidth = viewPort.width;\n var horizontalMargin = margin.horizontal || 0;\n var verticalMargin = margin.vertical || 0;\n\n var left = 0;\n var top = 0;\n\n var isVerticalFit = collisions.vertical === collision.fit;\n var isHorizontalFit = collisions.horizontal === collision.fit;\n var isVerticalFlip = collisions.vertical === collision.flip;\n var isHorizontalFlip = collisions.horizontal === collision.flip;\n\n if (isVerticalFit) {\n top += fit(elementTop, elementHeight, viewPortHeight);\n }\n\n if (isHorizontalFit) {\n left += fit(elementLeft, elementWidth, viewPortWidth);\n }\n\n if (isVerticalFlip) {\n top += flip({\n margin: verticalMargin,\n offset: elementTop,\n size: elementHeight,\n anchorSize: anchorRect.height,\n viewPortSize: viewPortHeight,\n anchorAlignPoint: anchorAlign.vertical,\n elementAlignPoint: elementAlign.vertical\n });\n }\n\n if (isHorizontalFlip) {\n left += flip({\n margin: horizontalMargin,\n offset: elementLeft,\n size: elementWidth,\n anchorSize: anchorRect.width,\n viewPortSize: viewPortWidth,\n anchorAlignPoint: anchorAlign.horizontal,\n elementAlignPoint: elementAlign.horizontal\n });\n }\n\n var flippedVertical = isVerticalFlip && top !== 0;\n var flippedHorizontal = isHorizontalFlip && left !== 0;\n var fittedVertical = isVerticalFit && top !== 0;\n var fittedHorizontal = isHorizontalFit && left !== 0;\n\n return {\n flipped: flippedHorizontal || flippedVertical,\n fitted: fittedVertical || fittedHorizontal,\n flip: {\n horizontal: flippedHorizontal,\n vertical: flippedVertical\n },\n fit: {\n horizontal: fittedHorizontal,\n vertical: fittedVertical\n },\n offset: {\n left: left,\n top: top\n }\n };\n};\n\nexport default restrictToView;\n","export default function (element) {\n var result = [];\n\n var sibling = element.parentNode.firstElementChild;\n\n while (sibling) {\n if (sibling !== element) {\n result.push(sibling);\n }\n\n sibling = sibling.nextElementSibling;\n }\n return result;\n};\n","/* eslint-disable no-loop-func */\n\nimport parents from './parents';\nimport siblings from './siblings';\n\nexport default function (anchor, container) {\n var parentElements = parents(anchor);\n var containerElement = container;\n var siblingElements;\n var result;\n\n while (containerElement) {\n siblingElements = siblings(containerElement);\n\n result = parentElements.reduce(\n function (list, p) { return list.concat(siblingElements.filter(function (s) { return s === p; })); },\n []\n )[0];\n\n if (result) { break; }\n\n containerElement = containerElement.parentElement;\n }\n\n return result;\n};\n\n","\nvar eitherRect = function (rect, offset) {\n if (!rect) {\n return { height: 0, left: offset.left, top: offset.top, width: 0 };\n }\n\n return rect;\n};\n\nvar scaleRect = function (rect, scale) {\n if (!rect || scale === 1) {\n return rect;\n }\n\n return {\n height: rect.height / scale,\n left: rect.left / scale,\n top: rect.top / scale,\n width: rect.width / scale\n };\n};\n\nvar removeStackingOffset = function (rect, stackingOffset) {\n if (!stackingOffset) { return rect; }\n\n var result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n\n return result;\n};\n\nfunction memoize(fun) {\n var result;\n var called = false;\n\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) {\n return result;\n }\n\n result = fun.apply(void 0, args);\n called = true;\n return result;\n };\n}\n\nvar hasRelativeStackingContext = memoize(function (elementSource) {\n if (!canUseDOM()) { return false; }\n\n // Component need to pass element to make sure document owner is correct.\n // This however might be performance hit if checked for example on each drag event.\n var currentDocument = elementSource ? elementSource.ownerDocument : document;\n\n if (!currentDocument || !currentDocument.body) { return false; }\n\n var top = 10;\n var parent = currentDocument.createElement(\"div\");\n parent.style.transform = \"matrix(10, 0, 0, 10, 0, 0)\";\n parent.innerHTML = \"
child
\";\n\n currentDocument.body.appendChild(parent);\n\n var isDifferent = parent.children[0].getBoundingClientRect().top !== top;\n\n currentDocument.body.removeChild(parent);\n\n return isDifferent;\n});\n\nvar canUseDOM = function () { return Boolean(\n // from fbjs\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n); };\n\nvar utils = {\n eitherRect: eitherRect,\n scaleRect: scaleRect,\n removeStackingOffset: removeStackingOffset,\n hasRelativeStackingContext: hasRelativeStackingContext,\n canUseDOM: canUseDOM\n};\n\nexport default utils;","/* eslint-disable arrow-body-style */\nimport addScroll from \"./add-scroll\";\nimport align from './align';\nimport boundingOffset from './bounding-offset';\nimport utils from './utils';\nimport removeScroll from './remove-scroll';\nimport restrictToView from './restrict-to-view';\nimport scrollPosition from './scroll-position';\nimport offsetBase from './offset';\nimport positionWithScroll from './position-with-scroll';\nimport windowViewPort from './window-viewport';\nimport siblingContainer from './sibling-container';\nimport parents from './parents';\n\nvar STYLES = [\n 'font-size',\n 'font-family',\n 'font-stretch',\n 'font-style',\n 'font-weight',\n 'line-height'\n];\n\nvar addOffset = function (current, addition) {\n return {\n left: current.left + addition.left,\n top: current.top + addition.top\n };\n};\n\nvar getWindow = function () {\n return utils.canUseDOM() ? window : null;\n};\n\nvar getFontStyles = function (el) {\n var window = getWindow();\n\n if (!window || !el) { return []; }\n\n var computedStyles = window.getComputedStyle(el);\n\n return STYLES.map(function (font) { return ({ key: font, value: computedStyles[font] }); });\n};\n\nvar hasOffsetParent = function (el) {\n if (!el) { return false; }\n\n return Boolean(el.offsetParent);\n};\n\nvar offset = function (el) {\n if (!el) { return null; }\n\n return offsetBase(el);\n};\n\nvar offsetAtPoint = function (element, currentLocation) {\n if (!element) { return null; }\n\n var ref = element.style;\n var left = ref.left;\n var top = ref.top;\n var transition = ref.transition;\n\n element.style.transition = 'none';\n element.style.left = (currentLocation.left) + \"px\";\n element.style.top = (currentLocation.top) + \"px\";\n\n var currentOffset = offsetBase(element);\n\n element.style.left = left;\n element.style.top = top;\n\n // prevents elements with transition to be animated because of the change\n // tslint:disable-next-line:no-unused-expression\n element.offsetHeight;\n\n element.style.transition = transition;\n\n return currentOffset;\n};\n\nvar position = function (element, popupElement, scale) {\n if (!element || !popupElement) { return null; }\n\n var currentScale = scale || 1;\n\n return positionWithScroll(element, popupElement, currentScale);\n};\n\nvar OVERFLOW_REGEXP = /auto|scroll/;\n\nvar overflowElementStyle = function (element) {\n return (\"\" + (element.style.overflow) + (element.style.overflowX) + (element.style.overflowY));\n};\n\nvar overflowComputedStyle = function (element) {\n var styles = window.getComputedStyle(element);\n return (\"\" + (styles.overflow) + (styles.overflowX) + (styles.overflowY));\n};\n\nvar overflowStyle = function (element) {\n return overflowElementStyle(element) || overflowComputedStyle(element);\n};\n\nvar scrollableParents = function (element) {\n var parentElements = [];\n\n if (!utils.canUseDOM()) { return parentElements; }\n\n var parent = element.parentElement;\n\n while (parent) {\n if (OVERFLOW_REGEXP.test(overflowStyle(parent)) || parent.hasAttribute('data-scrollable')) {\n parentElements.push(parent);\n }\n\n parent = parent.parentElement;\n }\n\n parentElements.push(window);\n\n return parentElements;\n};\n\nvar getRelativeContextElement = function (el) {\n if (!el || !utils.hasRelativeStackingContext()) { return null; }\n\n var parent = el.parentElement;\n\n while (parent) {\n if (window.getComputedStyle(parent).transform !== 'none') {\n return parent;\n }\n parent = parent.parentElement;\n }\n\n return null;\n};\n\nvar stackingElementOffset = function (el) {\n var relativeContextElement = getRelativeContextElement(el);\n\n if (!relativeContextElement) { return null; }\n\n return offsetBase(relativeContextElement);\n};\n\nvar stackingElementScroll = function (el) {\n var relativeContextElement = getRelativeContextElement(el);\n\n if (!relativeContextElement) { return { x: 0, y: 0 }; }\n\n return {\n x: relativeContextElement.scrollLeft,\n y: relativeContextElement.scrollTop\n };\n};\n\nvar stackingElementViewPort = function (el) {\n var relativeContextElement = getRelativeContextElement(el);\n\n if (!relativeContextElement) { return null; }\n\n return {\n height: relativeContextElement.scrollHeight,\n width: relativeContextElement.scrollWidth\n };\n};\n\nvar useRelativePosition = function (el) {\n return Boolean(getRelativeContextElement(el));\n};\n\nvar zoomLevel = function () {\n if (!utils.canUseDOM()) { return 1; }\n\n return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2)) || 1;\n};\n\nvar isZoomed = function () {\n return zoomLevel() > 1;\n};\n\nvar zIndex = function (anchor, container) {\n if (!anchor || !utils.canUseDOM()) { return null; }\n\n var sibling = siblingContainer(anchor, container);\n\n if (!sibling) { return null; }\n\n var result = [ anchor ].concat(parents(anchor, sibling)).reduce(\n function (index, p) {\n var zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;\n var current = parseInt(zIndexStyle, 10);\n return current > index ? current : index;\n },\n 0\n );\n\n return result ? (result + 1) : null;\n};\n\nvar domUtils = {\n addOffset: addOffset,\n addScroll: addScroll,\n align: align,\n boundingOffset: boundingOffset,\n getFontStyles: getFontStyles,\n getWindow: getWindow,\n hasOffsetParent: hasOffsetParent,\n offset: offset,\n offsetAtPoint: offsetAtPoint,\n position: position,\n removeScroll: removeScroll,\n restrictToView: restrictToView,\n scrollPosition: scrollPosition,\n scrollableParents: scrollableParents,\n getRelativeContextElement: getRelativeContextElement,\n stackingElementOffset: stackingElementOffset,\n stackingElementScroll: stackingElementScroll,\n stackingElementViewPort: stackingElementViewPort,\n useRelativePosition: useRelativePosition,\n windowViewPort: windowViewPort,\n zoomLevel: zoomLevel,\n isZoomed: isZoomed,\n zIndex: zIndex\n};\n\nexport default domUtils;\n","/* eslint-disable arrow-body-style */\n\nimport utils from './utils';\nimport domUtils from \"./dom-utils\";\n\nvar absoluteRect = function (anchor, element, offset, scale) {\n var scrollPos = elementScrollPosition(anchor, element);\n var rect = utils.eitherRect(domUtils.offset(anchor), offset);\n var stackScale = 2 * scale;\n\n var stackScroll = domUtils.stackingElementScroll(element);\n if (scale !== 1 && stackScroll) {\n stackScroll.x /= stackScale;\n stackScroll.y /= stackScale;\n }\n\n var stackOffset = domUtils.stackingElementOffset(element);\n if (scale !== 1 && stackOffset) {\n stackOffset.left /= stackScale;\n stackOffset.top /= stackScale;\n }\n\n return domUtils.removeScroll(\n domUtils.addScroll(\n utils.removeStackingOffset(\n utils.scaleRect(rect, scale),\n stackOffset\n ),\n stackScroll\n ),\n scrollPos\n );\n};\n\nvar relativeRect = function (anchor, element, offset, scale) {\n var rect = utils.eitherRect(domUtils.position(anchor, element, scale), offset);\n return utils.scaleRect(rect, scale);\n};\n\nvar elementScrollPosition = function (anchor, element) {\n return anchor ? { x: 0, y: 0 } : domUtils.scrollPosition(element);\n};\n\nvar alignElement = function (settings) {\n var anchor = settings.anchor;\n var element = settings.element;\n var anchorAlign = settings.anchorAlign;\n var elementAlign = settings.elementAlign;\n var margin = settings.margin;\n var offset = settings.offset;\n var positionMode = settings.positionMode;\n var scale = settings.scale;\n\n var currentScale = scale || 1;\n var fixedMode = positionMode === 'fixed' || !domUtils.hasOffsetParent(element);\n var anchorRect = fixedMode ? absoluteRect(anchor, element, offset, currentScale) : relativeRect(anchor, element, offset, currentScale);\n var elementRect = utils.scaleRect(domUtils.offset(element), currentScale);\n\n var result = domUtils.align({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n elementAlign: elementAlign,\n elementRect: elementRect,\n margin: margin\n });\n\n return result;\n};\n\nexport default alignElement;\n","import utils from \"./utils\";\nimport domUtils from \"./dom-utils\";\n\nvar positionElement = function (settings) {\n var anchor = settings.anchor;\n var currentLocation = settings.currentLocation;\n var element = settings.element;\n var anchorAlign = settings.anchorAlign;\n var elementAlign = settings.elementAlign;\n var collisions = settings.collisions;\n var margin = settings.margin;\n var scale = settings.scale;\n\n var currentScale = scale || 1;\n var elementOffset = domUtils.offsetAtPoint(element, currentLocation);\n var elementRect = utils.scaleRect(elementOffset, currentScale);\n var anchorOffset = utils.scaleRect(domUtils.offset(anchor), currentScale);\n var anchorRect = utils.eitherRect(anchorOffset, currentLocation);\n\n var viewPort = settings.viewPort || domUtils.windowViewPort(element);\n viewPort.width = viewPort.width / currentScale;\n viewPort.height = viewPort.height / currentScale;\n\n var result = domUtils.restrictToView({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n collisions: collisions,\n elementAlign: elementAlign,\n elementRect: elementRect,\n margin: margin,\n viewPort: viewPort\n });\n\n var offset = domUtils.addOffset(currentLocation, result.offset);\n\n return {\n flip: result.flip,\n flipped: result.flipped,\n offset: offset\n };\n};\n\nexport default positionElement;","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","/**\n * @hidden\n */\nvar outerHeight = function (element) {\n if (!element) {\n return 0;\n }\n var wnd = element.ownerDocument.defaultView;\n var computedStyles = wnd.getComputedStyle(element);\n var marginTop = parseFloat(computedStyles.marginTop);\n var marginBottom = parseFloat(computedStyles.marginBottom);\n return element.offsetHeight + marginTop + marginBottom;\n};\n/**\n * @hidden\n */\nvar outerWidth = function (element) {\n if (!element) {\n return 0;\n }\n var wnd = element.ownerDocument.defaultView;\n var computedStyles = wnd.getComputedStyle(element);\n var marginLeft = parseFloat(computedStyles.marginLeft);\n var marginRight = parseFloat(computedStyles.marginRight);\n return element.offsetWidth + marginLeft + marginRight;\n};\n/**\n * @hidden\n */\nvar styles = {\n 'animation-container': 'k-animation-container',\n 'animation-container-relative': 'k-animation-container-relative',\n 'animation-container-fixed': 'k-animation-container-fixed',\n 'push-right-enter': 'k-push-right-enter',\n 'push-right-appear': 'k-push-right-appear',\n 'push-right-enter-active': 'k-push-right-enter-active',\n 'push-right-appear-active': 'k-push-right-appear-active',\n 'push-right-exit': 'k-push-right-exit',\n 'push-right-exit-active': 'k-push-right-exit-active',\n 'push-left-enter': 'k-push-left-enter',\n 'push-left-appear': 'k-push-left-appear',\n 'push-left-enter-active': 'k-push-left-enter-active',\n 'push-left-appear-active': 'k-push-left-appear-active',\n 'push-left-exit': 'k-push-left-exit',\n 'push-left-exit-active': 'k-push-left-exit-active',\n 'push-down-enter': 'k-push-down-enter',\n 'push-down-appear': 'k-push-down-appear',\n 'push-down-enter-active': 'k-push-down-enter-active',\n 'push-down-appear-active': 'k-push-down-appear-active',\n 'push-down-exit': 'k-push-down-exit',\n 'push-down-exit-active': 'k-push-down-exit-active',\n 'push-up-enter': 'k-push-up-enter',\n 'push-up-appear': 'k-push-up-appear',\n 'push-up-enter-active': 'k-push-up-enter-active',\n 'push-up-appear-active': 'k-push-up-appear-active',\n 'push-up-exit': 'k-push-up-exit',\n 'push-up-exit-active': 'k-push-up-exit-active',\n 'expand': 'k-expand',\n 'expand-vertical-enter': 'k-expand-vertical-enter',\n 'expand-vertical-appear': 'k-expand-vertical-appear',\n 'expand-vertical-enter-active': 'k-expand-vertical-enter-active',\n 'expand-vertical-appear-active': 'k-expand-vertical-appear-active',\n 'expand-vertical-exit': 'k-expand-vertical-exit',\n 'expand-vertical-exit-active': 'k-expand-vertical-exit-active',\n 'expand-horizontal-enter': 'k-expand-horizontal-enter',\n 'expand-horizontal-appear': 'k-expand-horizontal-appear',\n 'expand-horizontal-enter-active': 'k-expand-horizontal-enter-active',\n 'expand-horizontal-appear-active': 'k-expand-horizontal-appear-active',\n 'expand-horizontal-exit': 'k-expand-horizontal-exit',\n 'expand-horizontal-exit-active': 'k-expand-horizontal-exit-active',\n 'child-animation-container': 'k-child-animation-container',\n 'fade-enter': 'k-fade-enter',\n 'fade-appear': 'k-fade-appear',\n 'fade-enter-active': 'k-fade-enter-active',\n 'fade-appear-active': 'k-fade-appear-active',\n 'fade-exit': 'k-fade-exit',\n 'fade-exit-active': 'k-fade-exit-active',\n 'zoom-in-enter': 'k-zoom-in-enter',\n 'zoom-in-appear': 'k-zoom-in-appear',\n 'zoom-in-enter-active': 'k-zoom-in-enter-active',\n 'zoom-in-appear-active': 'k-zoom-in-appear-active',\n 'zoom-in-exit': 'k-zoom-in-exit',\n 'zoom-in-exit-active': 'k-zoom-in-exit-active',\n 'zoom-out-enter': 'k-zoom-out-enter',\n 'zoom-out-appear': 'k-zoom-out-appear',\n 'zoom-out-enter-active': 'k-zoom-out-enter-active',\n 'zoom-out-appear-active': 'k-zoom-out-appear-active',\n 'zoom-out-exit': 'k-zoom-out-exit',\n 'zoom-out-exit-active': 'k-zoom-out-exit-active',\n 'slide-in-appear': 'k-slide-in-appear',\n 'centered': 'k-centered',\n 'slide-in-appear-active': 'k-slide-in-appear-active',\n 'slide-down-enter': 'k-slide-down-enter',\n 'slide-down-appear': 'k-slide-down-appear',\n 'slide-down-enter-active': 'k-slide-down-enter-active',\n 'slide-down-appear-active': 'k-slide-down-appear-active',\n 'slide-down-exit': 'k-slide-down-exit',\n 'slide-down-exit-active': 'k-slide-down-exit-active',\n 'slide-up-enter': 'k-slide-up-enter',\n 'slide-up-appear': 'k-slide-up-appear',\n 'slide-up-enter-active': 'k-slide-up-enter-active',\n 'slide-up-appear-active': 'k-slide-up-appear-active',\n 'slide-up-exit': 'k-slide-up-exit',\n 'slide-up-exit-active': 'k-slide-up-exit-active',\n 'slide-right-enter': 'k-slide-right-enter',\n 'slide-right-appear': 'k-slide-right-appear',\n 'slide-right-enter-active': 'k-slide-right-enter-active',\n 'slide-right-appear-active': 'k-slide-right-appear-active',\n 'slide-right-exit': 'k-slide-right-exit',\n 'slide-right-exit-active': 'k-slide-right-exit-active',\n 'slide-left-enter': 'k-slide-left-enter',\n 'slide-left-appear': 'k-slide-left-appear',\n 'slide-left-enter-active': 'k-slide-left-enter-active',\n 'slide-left-appear-active': 'k-slide-left-appear-active',\n 'slide-left-exit': 'k-slide-left-exit',\n 'slide-left-exit-active': 'k-slide-left-exit-active',\n 'reveal-vertical-enter': 'k-reveal-vertical-enter',\n 'reveal-vertical-appear': 'k-reveal-vertical-appear',\n 'reveal-vertical-enter-active': 'k-reveal-vertical-enter-active',\n 'reveal-vertical-appear-active': 'k-reveal-vertical-appear-active',\n 'reveal-vertical-exit': 'k-reveal-vertical-exit',\n 'reveal-vertical-exit-active': 'k-reveal-vertical-exit-active',\n 'reveal-horizontal-enter': 'k-reveal-horizontal-enter',\n 'reveal-horizontal-appear': 'k-reveal-horizontal-appear',\n 'reveal-horizontal-enter-active': 'k-reveal-horizontal-enter-active',\n 'reveal-horizontal-appear-active': 'k-reveal-horizontal-appear-active',\n 'reveal-horizontal-exit': 'k-reveal-horizontal-exit',\n 'reveal-horizontal-exit-active': 'k-reveal-horizontal-exit-active'\n};\n/**\n * @hidden\n */\nexport default {\n outerHeight: outerHeight,\n outerWidth: outerWidth,\n styles: styles\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, noop } from '@progress/kendo-react-common';\nimport { CSSTransition } from 'react-transition-group';\nimport util from './util';\nvar styles = util.styles;\nvar AnimationChild = /** @class */ (function (_super) {\n __extends(AnimationChild, _super);\n function AnimationChild() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(AnimationChild.prototype, \"element\", {\n /**\n * The element that is being animated.\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n AnimationChild.prototype.render = function () {\n var _this = this;\n var _a = this.props, children = _a.children, style = _a.style, appear = _a.appear, enter = _a.enter, exit = _a.exit, transitionName = _a.transitionName, transitionEnterDuration = _a.transitionEnterDuration, transitionExitDuration = _a.transitionExitDuration, className = _a.className, onEnter = _a.onEnter, onEntering = _a.onEntering, onEntered = _a.onEntered, onExit = _a.onExit, onExiting = _a.onExiting, onExited = _a.onExited, onAfterExited = _a.onAfterExited, mountOnEnter = _a.mountOnEnter, unmountOnExit = _a.unmountOnExit, animationEnteringStyle = _a.animationEnteringStyle, animationEnteredStyle = _a.animationEnteredStyle, animationExitingStyle = _a.animationExitingStyle, animationExitedStyle = _a.animationExitedStyle, other = __rest(_a, [\"children\", \"style\", \"appear\", \"enter\", \"exit\", \"transitionName\", \"transitionEnterDuration\", \"transitionExitDuration\", \"className\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"onAfterExited\", \"mountOnEnter\", \"unmountOnExit\", \"animationEnteringStyle\", \"animationEnteredStyle\", \"animationExitingStyle\", \"animationExitedStyle\"]);\n var childAnimationContainerClassNames = classNames(className, styles['child-animation-container']);\n var defaultStyle = __assign({ transitionDelay: '0ms' }, style);\n var animationStyle = {\n entering: __assign({ transitionDuration: transitionEnterDuration + \"ms\" }, animationEnteringStyle),\n entered: __assign({}, animationEnteredStyle),\n exiting: __assign({ transitionDuration: transitionExitDuration + \"ms\" }, animationExitingStyle),\n exited: __assign({}, animationExitedStyle)\n };\n var transitionProps = {\n in: this.props.in,\n appear: appear,\n enter: enter,\n exit: exit,\n mountOnEnter: mountOnEnter,\n unmountOnExit: unmountOnExit,\n timeout: {\n enter: transitionEnterDuration,\n exit: transitionExitDuration\n },\n onEnter: (function (e) {\n if (onEnter) {\n onEnter.call(undefined, { animatedElement: e, target: _this });\n }\n }),\n onEntering: (function (e) {\n if (onEntering) {\n onEntering.call(undefined, { animatedElement: e, target: _this });\n }\n }),\n onEntered: (function (e) {\n if (onEntered) {\n onEntered.call(undefined, { animatedElement: e, target: _this });\n }\n }),\n onExit: (function (e) {\n if (onExit) {\n onExit.call(undefined, { animatedElement: e, target: _this });\n }\n }),\n onExiting: (function (e) {\n if (onExiting) {\n onExiting.call(undefined, { animatedElement: e, target: _this });\n }\n }),\n onExited: (function (e) {\n if (onAfterExited) {\n onAfterExited.call(undefined, { animatedElement: e, target: _this });\n }\n if (onExited) {\n onExited.call(undefined, { animatedElement: e, target: _this });\n }\n }),\n classNames: {\n appear: styles[transitionName + \"-appear\"] || transitionName + \"-appear\",\n appearActive: styles[transitionName + \"-appear-active\"] || transitionName + \"-appear-active\",\n enter: styles[transitionName + \"-enter\"] || transitionName + \"-enter\",\n enterActive: styles[transitionName + \"-enter-active\"] || transitionName + \"-enter-active\",\n exit: styles[transitionName + \"-exit\"] || transitionName + \"-exit\",\n exitActive: styles[transitionName + \"-exit-active\"] || transitionName + \"-exit-active\"\n }\n };\n return (React.createElement(CSSTransition, __assign({}, transitionProps, other), function (status) {\n return (React.createElement(\"div\", { style: __assign({}, defaultStyle, animationStyle[status]), className: childAnimationContainerClassNames, ref: function (div) { _this._element = div; } }, children));\n }));\n };\n /**\n * @hidden\n */\n AnimationChild.propTypes = {\n in: PropTypes.bool,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n transitionName: PropTypes.string.isRequired,\n className: PropTypes.string,\n appear: PropTypes.bool,\n enter: PropTypes.bool,\n exit: PropTypes.bool,\n transitionEnterDuration: PropTypes.number.isRequired,\n transitionExitDuration: PropTypes.number.isRequired,\n mountOnEnter: PropTypes.bool,\n unmountOnExit: PropTypes.bool,\n animationEnteringStyle: PropTypes.object,\n animationEnteredStyle: PropTypes.object,\n animationExitingStyle: PropTypes.object,\n animationExitedStyle: PropTypes.object\n };\n /**\n * @hidden\n */\n AnimationChild.defaultProps = {\n mountOnEnter: true,\n unmountOnExit: false,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop,\n onAfterExited: noop,\n animationEnteringStyle: {},\n animationEnteredStyle: {},\n animationExitingStyle: {},\n animationExitedStyle: {}\n };\n return AnimationChild;\n}(React.Component));\nexport { AnimationChild };\n","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-animation',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584075,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { AnimationChild } from './AnimationChild';\nimport { TransitionGroup } from 'react-transition-group';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles;\n// tslint:enable:max-line-length\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation(props) {\n var _this = _super.call(this, props) || this;\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n Animation.prototype.render = function () {\n var _a = this.props, id = _a.id, style = _a.style, children = _a.children, component = _a.component, className = _a.className, childFactory = _a.childFactory, stackChildren = _a.stackChildren, componentChildStyle = _a.componentChildStyle, componentChildClassName = _a.componentChildClassName, other = __rest(_a, [\"id\", \"style\", \"children\", \"component\", \"className\", \"childFactory\", \"stackChildren\", \"componentChildStyle\", \"componentChildClassName\"]);\n var transitionProps = {\n id: id,\n style: style,\n component: component,\n childFactory: childFactory,\n className: classNames(styles['animation-container'], styles['animation-container-relative'], className)\n };\n var content = React.Children.map(children || null, function (child) { return (React.createElement(AnimationChild, __assign({}, other, { style: componentChildStyle, className: componentChildClassName }), child)); });\n return (React.createElement(TransitionGroup, __assign({}, transitionProps), content));\n };\n /**\n * @hidden\n */\n Animation.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n childFactory: PropTypes.any,\n className: PropTypes.string,\n component: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.any,\n transitionName: PropTypes.string.isRequired,\n appear: PropTypes.bool.isRequired,\n enter: PropTypes.bool.isRequired,\n exit: PropTypes.bool.isRequired,\n transitionEnterDuration: PropTypes.number.isRequired,\n transitionExitDuration: PropTypes.number.isRequired\n };\n /**\n * @hidden\n */\n Animation.defaultProps = {\n component: 'div'\n };\n return Animation;\n}(React.Component));\nexport { Animation };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Animation } from './Animation';\n// tslint:enable:max-line-length\nvar Fade = /** @class */ (function (_super) {\n __extends(Fade, _super);\n function Fade() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n Fade.prototype.render = function () {\n var _a = this.props, children = _a.children, other = __rest(_a, [\"children\"]);\n var animationProps = {\n transitionName: 'fade'\n };\n return (React.createElement(Animation, __assign({}, animationProps, other), children));\n };\n /**\n * @hidden\n */\n Fade.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n childFactory: PropTypes.any,\n className: PropTypes.string,\n component: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.any\n };\n /**\n * @hidden\n */\n Fade.defaultProps = {\n appear: false,\n enter: true,\n exit: false,\n transitionEnterDuration: 500,\n transitionExitDuration: 500\n };\n return Fade;\n}(React.Component));\nexport { Fade };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Animation } from './Animation';\n// tslint:enable:max-line-length\nvar Expand = /** @class */ (function (_super) {\n __extends(Expand, _super);\n function Expand() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n Expand.prototype.render = function () {\n var _a = this.props, direction = _a.direction, children = _a.children, other = __rest(_a, [\"direction\", \"children\"]);\n var animationProps = {\n transitionName: \"expand-\" + direction\n };\n return (React.createElement(Animation, __assign({}, animationProps, other), children));\n };\n /**\n * @hidden\n */\n Expand.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n childFactory: PropTypes.any,\n className: PropTypes.string,\n direction: PropTypes.oneOf([\n 'horizontal',\n 'vertical'\n ]),\n component: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.any\n };\n /**\n * @hidden\n */\n Expand.defaultProps = {\n appear: false,\n enter: true,\n exit: true,\n transitionEnterDuration: 300,\n transitionExitDuration: 300,\n direction: 'vertical'\n };\n return Expand;\n}(React.Component));\nexport { Expand };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Animation } from './Animation';\nvar EXITING_ANIMATION_STYLE = { position: 'absolute', top: '0', left: '0' };\n// tslint:enable:max-line-length\nvar Push = /** @class */ (function (_super) {\n __extends(Push, _super);\n function Push() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n Push.prototype.render = function () {\n var _a = this.props, children = _a.children, direction = _a.direction, other = __rest(_a, [\"children\", \"direction\"]);\n return (React.createElement(Animation, __assign({}, other, { transitionName: \"push-\" + direction, animationExitingStyle: this.props.stackChildren\n ? EXITING_ANIMATION_STYLE\n : undefined }), children));\n };\n /**\n * @hidden\n */\n Push.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n childFactory: PropTypes.any,\n className: PropTypes.string,\n direction: PropTypes.oneOf([\n 'up',\n 'down',\n 'left',\n 'right'\n ]),\n component: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.any,\n stackChildren: PropTypes.bool\n };\n /**\n * @hidden\n */\n Push.defaultProps = {\n appear: false,\n enter: true,\n exit: true,\n transitionEnterDuration: 300,\n transitionExitDuration: 300,\n direction: 'right',\n stackChildren: false\n };\n return Push;\n}(React.Component));\nexport { Push };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Animation } from './Animation';\n// tslint:enable:max-line-length\nvar Slide = /** @class */ (function (_super) {\n __extends(Slide, _super);\n function Slide() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n Slide.prototype.render = function () {\n var _a = this.props, direction = _a.direction, children = _a.children, other = __rest(_a, [\"direction\", \"children\"]);\n var animationProps = {\n transitionName: \"slide-\" + direction\n };\n return (React.createElement(Animation, __assign({}, animationProps, other), children));\n };\n /**\n * @hidden\n */\n Slide.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n childFactory: PropTypes.any,\n className: PropTypes.string,\n direction: PropTypes.oneOf([\n 'up',\n 'down',\n 'left',\n 'right'\n ]),\n component: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.any\n };\n /**\n * @hidden\n */\n Slide.defaultProps = {\n appear: false,\n enter: true,\n exit: true,\n transitionEnterDuration: 300,\n transitionExitDuration: 300,\n direction: 'down'\n };\n return Slide;\n}(React.Component));\nexport { Slide };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Animation } from './Animation';\nvar EXITING_ANIMATION_STYLE = { position: 'absolute', top: '0', left: '0' };\n// tslint:enable:max-line-length\nvar Zoom = /** @class */ (function (_super) {\n __extends(Zoom, _super);\n function Zoom() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n Zoom.prototype.render = function () {\n var _a = this.props, children = _a.children, direction = _a.direction, other = __rest(_a, [\"children\", \"direction\"]);\n return (React.createElement(Animation, __assign({}, other, { transitionName: \"zoom-\" + direction, animationExitingStyle: this.props.stackChildren\n ? EXITING_ANIMATION_STYLE\n : undefined }), children));\n };\n /**\n * @hidden\n */\n Zoom.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n childFactory: PropTypes.any,\n className: PropTypes.string,\n direction: PropTypes.oneOf([\n 'in',\n 'out'\n ]),\n component: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.any,\n stackChildren: PropTypes.bool\n };\n /**\n * @hidden\n */\n Zoom.defaultProps = {\n appear: false,\n enter: true,\n exit: true,\n transitionEnterDuration: 300,\n transitionExitDuration: 300,\n direction: 'out',\n stackChildren: false\n };\n return Zoom;\n}(React.Component));\nexport { Zoom };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Animation } from './Animation';\nimport { noop } from '@progress/kendo-react-common';\nimport util from './util';\nvar Reveal = /** @class */ (function (_super) {\n __extends(Reveal, _super);\n function Reveal() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.state = {\n maxHeight: undefined,\n maxWidth: undefined\n };\n _this.componentWillEnter = function (event) {\n var _a = _this.props, onEnter = _a.onEnter, onBeforeEnter = _a.onBeforeEnter;\n if (onBeforeEnter) {\n onBeforeEnter.call(undefined, event);\n }\n _this.updateContainerDimensions(event.animatedElement, function () {\n if (onEnter) {\n onEnter.call(undefined, event);\n }\n });\n };\n _this.componentIsEntering = function (event) {\n var onEntering = _this.props.onEntering;\n _this.updateContainerDimensions(event.animatedElement, function () {\n if (onEntering) {\n onEntering.call(undefined, event);\n }\n });\n };\n _this.componentWillExit = function (event) {\n var onExit = _this.props.onExit;\n _this.updateContainerDimensions(event.animatedElement, function () {\n if (onExit) {\n onExit.call(undefined, event);\n }\n });\n };\n _this.updateContainerDimensions = function (node, done) {\n if (done === void 0) { done = noop; }\n var content = node.firstChild;\n if (content) {\n var newHeight = util.outerHeight(content);\n var newWidth = util.outerWidth(content);\n _this.setState({\n maxHeight: newHeight,\n maxWidth: newWidth\n }, done);\n }\n };\n return _this;\n }\n /**\n * @hidden\n */\n Reveal.prototype.render = function () {\n var _a = this.props, direction = _a.direction, children = _a.children, childFactory = _a.childFactory, other = __rest(_a, [\"direction\", \"children\", \"childFactory\"]);\n var _b = this.state, maxHeight = _b.maxHeight, maxWidth = _b.maxWidth;\n var maxOffset;\n if (direction === 'vertical') {\n maxOffset = { maxHeight: maxHeight ? maxHeight + \"px\" : null };\n }\n else {\n maxOffset = { maxWidth: maxWidth ? maxWidth + \"px\" : null };\n }\n var animationEnteringStyle = {\n maxHeight: maxOffset.maxHeight,\n maxWidth: maxOffset.maxWidth\n };\n var factory = function (child) {\n var result = childFactory ? childFactory(child) : child;\n if (!result.props.in) {\n return React.cloneElement(result, __assign({}, result.props, { style: __assign({}, result.props.style, { maxHeight: maxOffset.maxHeight, maxWidth: maxOffset.maxWidth }) }));\n }\n return result;\n };\n return (React.createElement(Animation, __assign({}, other, { childFactory: factory, onEnter: this.componentWillEnter, onEntering: this.componentIsEntering, onExit: this.componentWillExit, animationEnteringStyle: animationEnteringStyle, transitionName: \"reveal-\" + direction }), children));\n };\n /**\n * @hidden\n */\n Reveal.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node\n ]),\n childFactory: PropTypes.any,\n className: PropTypes.string,\n direction: PropTypes.oneOf([\n 'horizontal',\n 'vertical'\n ]),\n component: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.any\n };\n /**\n * @hidden\n */\n Reveal.defaultProps = {\n appear: false,\n enter: true,\n exit: true,\n transitionEnterDuration: 300,\n transitionExitDuration: 300,\n direction: 'vertical'\n };\n return Reveal;\n}(React.Component));\nexport { Reveal };\n","import * as React from 'react';\n/** @hidden */\nexport var useAnimation = function (config, deps) {\n var offset = React.useRef(0);\n var mount = React.useRef(false);\n var animationFrame = React.useRef();\n var animate = function (transition) {\n var duration = transition.duration;\n var start;\n var progress;\n var skip = offset.current && 1 - offset.current;\n if (transition.onStart) {\n transition.onStart();\n }\n var frame = function (timestamp) {\n if (!start) {\n start = timestamp;\n }\n progress = timestamp - start + 1;\n var rate = progress / duration + skip;\n if (rate <= 1) {\n if (transition.onUpdate) {\n transition.onUpdate(rate);\n }\n animationFrame.current = window.requestAnimationFrame(frame);\n offset.current = rate;\n }\n else {\n if (transition.onEnd) {\n transition.onEnd(1);\n }\n offset.current = 0;\n }\n };\n animationFrame.current = window.requestAnimationFrame(frame);\n };\n React.useEffect(function () {\n animate(config);\n return function () {\n if (animationFrame.current) {\n window.cancelAnimationFrame(animationFrame.current);\n }\n };\n }, deps);\n React.useEffect(function () {\n mount.current = true;\n }, []);\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-buttons',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584136,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","/**\n * @hidden\n */\nvar styles = {\n button: 'k-button',\n 'flat': 'k-flat',\n 'outline': 'k-outline',\n 'clear': 'k-button-clear',\n 'primary': 'k-primary',\n 'state-selected': 'k-state-selected',\n 'button-icon': 'k-button-icon',\n 'button-icontext': 'k-button-icontext',\n 'state-disabled': 'k-state-disabled',\n 'group-start': 'k-group-start',\n 'group-end': 'k-group-end',\n 'button-group': 'k-button-group',\n 'button-group-stretched': 'k-button-group-stretched',\n 'ltr': 'k-ltr',\n 'rtl': 'k-rtl'\n};\nvar notDisabled = ':not(.k-state-disabled):not([disabled]):not([disabled=\"true\"])';\n/**\n * @hidden\n */\nexport var toolbarButtons = [\n 'button' + notDisabled,\n '.k-button-group > button' + notDisabled,\n '.k-dropdown > .k-dropdown-wrap' + notDisabled,\n '.k-colorpicker > .k-picker-wrap' + notDisabled\n];\n/**\n * @hidden\n */\nexport default {\n styles: styles\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles;\n/**\n * @hidden\n */\nfunction iconElement(_a) {\n var imageUrl = _a.imageUrl, icon = _a.icon, iconClass = _a.iconClass, imageAlt = _a.imageAlt;\n if (imageUrl) {\n return (React.createElement(\"img\", { role: \"presentation\", className: 'k-image', alt: imageAlt, src: imageUrl }));\n }\n else if (icon) {\n var iconClasses = classNames('k-icon', 'k-i-' + icon);\n return (React.createElement(\"span\", { role: \"presentation\", className: iconClasses }));\n }\n else if (iconClass) {\n return (React.createElement(\"span\", { role: \"presentation\", className: iconClass }));\n }\n return null;\n}\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n function Button(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n _this.handleClick = function (event) {\n _this.toggleIfApplicable();\n if (_this.props.onClick) {\n _this.props.onClick.call(undefined, event);\n }\n };\n validatePackage(packageMetadata);\n _this.state = { selected: _this.props.togglable === true && _this.props.selected === true };\n return _this;\n }\n Object.defineProperty(Button.prototype, \"element\", {\n /**\n * Gets the DOM element of the Button component.\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Button.prototype, \"selected\", {\n /**\n * Returns `true` when the component is togglable and selected ([see example]({% slug toggleable_button %})).\n * Otherwise, returns `false`.\n */\n get: function () {\n return this._selectedTemp !== undefined ? this._selectedTemp : this.state.selected;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n Button.getDerivedStateFromProps = function (props, state) {\n if (props.togglable && props.selected !== undefined && props.selected !== state.selected) {\n return { selected: props.selected };\n }\n return null;\n };\n /**\n * @hidden\n */\n Button.prototype.render = function () {\n var _this = this;\n var _a;\n var _b = this.props, children = _b.children, look = _b.look, primary = _b.primary, togglable = _b.togglable, icon = _b.icon, iconClass = _b.iconClass, imageUrl = _b.imageUrl, imageAlt = _b.imageAlt, className = _b.className, onClick = _b.onClick, htmlAttributes = __rest(_b, [\"children\", \"look\", \"primary\", \"togglable\", \"icon\", \"iconClass\", \"imageUrl\", \"imageAlt\", \"className\", \"onClick\"]);\n var hasIcon = (icon !== undefined || iconClass !== undefined || imageUrl !== undefined);\n var hasChildren = children !== undefined;\n var buttonClasses = classNames([styles.button], (_a = {},\n _a[styles[\"\" + look]] = look !== 'default',\n _a[styles.primary] = primary,\n _a[styles['state-disabled']] = this.props.disabled,\n _a[styles['state-selected']] = this.state.selected,\n _a[styles['button-icon']] = !hasChildren && hasIcon,\n _a[styles['button-icontext']] = hasChildren && hasIcon,\n _a), [styles[\"\" + this.props.dir]], className);\n var buttonProps = {\n className: buttonClasses,\n onClick: this.handleClick,\n // Accessibility properties\n role: togglable ? 'checkbox' : undefined,\n 'aria-disabled': this.props.disabled || undefined,\n 'aria-checked': togglable ? this.state.selected : undefined\n };\n var iconEl = iconElement({\n icon: icon,\n iconClass: iconClass,\n imageUrl: imageUrl,\n imageAlt: imageAlt\n });\n return (React.createElement(\"button\", __assign({}, buttonProps, htmlAttributes, { ref: function (button) { return _this._element = button; } }),\n iconEl,\n children));\n };\n Button.prototype.toggleIfApplicable = function () {\n var _this = this;\n if (this.props.togglable && this.props.selected === undefined) {\n var selected = !this.state.selected;\n this._selectedTemp = selected;\n this.setState({ selected: selected }, function () { return _this._selectedTemp = undefined; });\n }\n };\n /**\n * @hidden\n */\n Button.propTypes = {\n children: PropTypes.node,\n look: PropTypes.oneOf(['default', 'flat', 'outline', 'clear']),\n primary: PropTypes.bool,\n selected: PropTypes.bool,\n togglable: PropTypes.bool,\n icon: PropTypes.string,\n iconClass: PropTypes.string,\n imageUrl: PropTypes.string,\n imageAlt: PropTypes.string\n };\n /**\n * @hidden\n */\n Button.defaultProps = {\n look: 'default',\n primary: false,\n togglable: false\n };\n return Button;\n}(React.Component));\nexport default Button;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles;\nvar ButtonGroup = /** @class */ (function (_super) {\n __extends(ButtonGroup, _super);\n function ButtonGroup(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n ButtonGroup.prototype.render = function () {\n var _this = this;\n var _a;\n var buttons = this.mapButtons(this.props.children);\n var groupClasses = classNames([styles['button-group']], (_a = {},\n _a[styles['state-disabled']] = this.props.disabled,\n _a[styles['button-group-stretched']] = !!this.props.width,\n _a), this.props.className);\n var groupProps = {\n className: groupClasses,\n style: { 'width': \"\" + this.props.width },\n dir: this.props.dir,\n // Accessibility properties\n role: 'group',\n 'aria-disabled': this.props.disabled\n };\n return (React.createElement(\"div\", __assign({ ref: function (div) { _this._element = div; } }, groupProps, { className: groupClasses }), buttons));\n };\n ButtonGroup.prototype.mapButtons = function (children) {\n var _this = this;\n var count = React.Children.count(children);\n var rtl = this.props.dir !== undefined\n ? this.props.dir === 'rtl'\n : (this._element && (getComputedStyle(this._element).direction === 'rtl') || false);\n return React.Children.map(children, function (child, index) {\n if (React.isValidElement(child)) {\n return _this.renderButton(child, index, (index === count - 1), rtl);\n }\n return child;\n });\n };\n ButtonGroup.prototype.renderButton = function (child, index, isLast, isRtl) {\n var _a;\n var className = classNames(child.props.className, (_a = {},\n _a[styles['group-start']] = isRtl ? isLast : index === 0,\n _a[styles['group-end']] = isRtl ? index === 0 : isLast,\n _a));\n var style = __assign({}, (this.props.width ? { width: this.props.width } : {}), (child.props.style || {}));\n var disabled = this.props.disabled || child.props.disabled;\n var buttonProps = __assign({}, child.props, (className ? { className: className } : {}), (Object.keys(style).length ? { style: style } : {}), (disabled !== undefined ? { disabled: disabled } : {}));\n return React.Children.count(child.props.children) > 0 ?\n React.cloneElement(child, buttonProps, child.props.children) :\n React.cloneElement(child, buttonProps);\n };\n /**\n * @hidden\n */\n ButtonGroup.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n width: PropTypes.string,\n dir: PropTypes.string\n };\n return ButtonGroup;\n}(React.Component));\nexport default ButtonGroup;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar ButtonItem = /** @class */ (function (_super) {\n __extends(ButtonItem, _super);\n function ButtonItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onClick = function (event) { return _this.props.onClick(event, _this.props.index); };\n return _this;\n }\n ButtonItem.prototype.render = function () {\n var _a = this.props, dataItem = _a.dataItem, focused = _a.focused, id = _a.id, onDown = _a.onDown, render = _a.render;\n var item = (React.createElement(\"li\", { id: id, className: classNames('k-item', {\n 'k-state-focused': focused,\n 'k-state-selected': dataItem.selected,\n 'k-state-disabled': dataItem.disabled\n }), onClick: this.onClick, onMouseDown: onDown, onPointerDown: onDown, role: \"menuItem\", \"aria-disabled\": dataItem.disabled || undefined }, this.renderContent()));\n return (this.props.item !== undefined /* to be removed in 5.0.0 */ &&\n render !== undefined) ? render.call(undefined, item, this.props) : item;\n };\n ButtonItem.prototype.renderContent = function () {\n var _a = this.props, dataItem = _a.dataItem, textField = _a.textField, index = _a.index;\n var As = this.props.dataItem.render || this.props.item || (this.props.item === undefined ? this.props.render : null);\n var text = dataItem.text !== undefined ? dataItem.text :\n (textField ? dataItem[textField] : dataItem);\n var iconClass = dataItem.icon ? \"k-icon k-i-\" + dataItem.icon : dataItem.iconClass;\n return (As && React.createElement(As, { item: dataItem, itemIndex: index })) || ([\n (iconClass && (React.createElement(\"span\", { className: iconClass, role: \"presentation\", key: \"icon\" }))),\n (dataItem.imageUrl && (React.createElement(\"img\", { className: \"k-image\", alt: \"\", src: dataItem.imageUrl, role: \"presentation\", key: \"image\" }))),\n text\n ]);\n };\n return ButtonItem;\n}(React.Component));\nexport default ButtonItem;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nvar SplitButtonItem = /** @class */ (function (_super) {\n __extends(SplitButtonItem, _super);\n function SplitButtonItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n SplitButtonItem.prototype.render = function () {\n return null;\n };\n /**\n * @hidden\n */\n SplitButtonItem.propTypes = {\n text: PropTypes.string,\n icon: PropTypes.string,\n iconClass: PropTypes.string,\n imageUrl: PropTypes.string,\n disabled: PropTypes.bool,\n render: PropTypes.any\n };\n return SplitButtonItem;\n}(React.Component));\nexport default SplitButtonItem;\n","import { Keys } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar navigate = function (focusedIndex, keyCode, altKey, total) {\n if (altKey) {\n return focusedIndex;\n }\n switch (keyCode) {\n case Keys.enter:\n case Keys.space:\n case Keys.esc:\n return -1;\n case Keys.up:\n case Keys.left:\n return Math.max(0, focusedIndex - 1);\n case Keys.down:\n case Keys.right:\n return Math.min(total - 1, focusedIndex + 1);\n default:\n return focusedIndex;\n }\n};\nexport default navigate;\n","var clearSlide = function (element) {\n element.style.transitionDuration = '';\n element.classList.remove('k-slide-down-appear', 'k-slide-down-appear-active', 'k-slide-down-exit', 'k-slide-down-exit-active', 'k-slide-up-appear', 'k-slide-up-appear-active', 'k-slide-up-exit', 'k-slide-up-exit-active');\n};\nvar firefox = typeof window !== 'undefined' &&\n /Firefox/.test(window.navigator.userAgent);\n/**\n * @hidden\n */\nexport var slide = function (element, direction, duration, type, callback) {\n if (duration === 0) {\n return callback();\n }\n var slideClass = 'k-slide-' + direction + '-' + type;\n var slideActiveClass = slideClass + '-active';\n var transitionend = function () {\n // if event is attached using react,\n // the animation does not work well in firefox,\n // when the show/hide button is toggled quickly.\n element.removeEventListener('transitionend', transitionend);\n clearSlide(element);\n callback();\n };\n element.addEventListener('transitionend', transitionend);\n var ownerDocument = element.ownerDocument;\n if (!ownerDocument) {\n return;\n }\n var deafultView = ownerDocument.defaultView;\n if (!deafultView) {\n return;\n }\n var animate = function () {\n clearSlide(element);\n element.classList.add(slideClass);\n deafultView.requestAnimationFrame(function () {\n element.style.transitionDuration = duration + 'ms';\n element.classList.add(slideActiveClass);\n });\n };\n if (firefox) {\n deafultView.requestAnimationFrame(animate);\n }\n else {\n animate();\n }\n};\n","import { parents, siblingContainer } from '@progress/kendo-popup-common';\nimport { canUseDOM, hasRelativeStackingContext } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var eitherRect = function (rect, offset) {\n if (!rect) {\n return { height: 0, left: offset.left, top: offset.top, width: 0 };\n }\n return rect;\n};\n/**\n * @hidden\n */\nexport var replaceOffset = function (rect, offset) {\n if (!offset) {\n return rect;\n }\n var result = {\n height: rect.height,\n left: offset.left,\n top: offset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\nexport var removeStackingOffset = function (rect, stackingOffset) {\n if (!stackingOffset) {\n return rect;\n }\n var result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\nexport var isDifferentOffset = function (oldOffset, newOffset) {\n var oldLeft = oldOffset.left, oldTop = oldOffset.top;\n var newLeft = newOffset.left, newTop = newOffset.top;\n return Math.abs(oldLeft - newLeft) >= 1 || Math.abs(oldTop - newTop) >= 1;\n};\n/**\n * @hidden\n */\nexport var hasBoundingRect = function (elem) { return !!elem.getBoundingClientRect; };\n/**\n * @hidden\n */\nexport var OVERFLOW_REGEXP = /auto|scroll/;\n/**\n * @hidden\n */\nvar overflowStyle = function (element) {\n var styles = window.getComputedStyle(element);\n return \"\" + styles.overflow + styles.overflowX + styles.overflowY;\n};\n/**\n * @hidden\n */\nexport var scrollableParents = function (element) {\n var parentElements = [];\n if (!canUseDOM) {\n return parentElements;\n }\n var parent = element.parentElement;\n while (parent) {\n if (OVERFLOW_REGEXP.test(overflowStyle(parent))) {\n parentElements.push(parent);\n }\n parent = parent.parentElement;\n }\n parentElements.push(window);\n return parentElements;\n};\n/**\n * @hidden\n */\nexport var FRAME_DURATION = 1000 / 60; // 1000ms divided by 60fps\n/**\n * @hidden\n */\nexport var HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext();\n/**\n * @hidden\n */\nexport var zIndex = function (anchor, container) {\n if (!anchor || !canUseDOM) {\n return null;\n }\n var sibling = siblingContainer(anchor, container);\n if (!sibling) {\n return null;\n }\n var result = [anchor].concat(parents(anchor, sibling)).reduce(function (index, p) {\n var zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;\n var current = parseInt(zIndexStyle, 10);\n return current > index ? current : index;\n }, 0);\n return result ? (result + 1) : null;\n};\n/**\n * @hidden\n */\nexport var CollisionType = {\n fit: 'fit',\n flip: 'flip'\n};\n/**\n * @hidden\n */\nexport var AlignPoint = {\n left: 'left',\n center: 'center',\n right: 'right',\n bottom: 'bottom',\n top: 'top'\n};\n/**\n * @hidden\n */\nexport var throttle = function (func, wait, options) {\n if (options === void 0) { options = {}; }\n var timeout, context, args, result;\n var previous = 0;\n options = options || {};\n var later = function () {\n previous = options.leading === false ? 0 : new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n };\n var throttled = function () {\n var now = new Date().getTime();\n if (!previous && options.leading === false) {\n previous = now;\n }\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n }\n else if (!timeout && options.trailing !== false) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n return throttled;\n};\n","import { eitherRect, removeStackingOffset } from '../util';\n/**\n * @hidden\n */\nvar AlignService = /** @class */ (function () {\n function AlignService(_dom) {\n this._dom = _dom;\n }\n AlignService.prototype.alignElement = function (settings) {\n var anchor = settings.anchor, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, offset = settings.offset;\n var fixedMode = !this._dom.hasOffsetParent(element);\n var anchorRect = fixedMode ?\n this.absoluteRect(anchor, element, offset) :\n this.relativeRect(anchor, element, offset);\n return this._dom.align({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n elementAlign: elementAlign,\n elementRect: this._dom.offset(element)\n });\n };\n AlignService.prototype.absoluteRect = function (anchor, element, offset) {\n var dom = this._dom;\n var rect = eitherRect(dom.offset(anchor), offset);\n var stackingOffset = dom.stackingElementOffset(element);\n var removedOffset = removeStackingOffset(rect, stackingOffset);\n var stackingScroll = dom.stackingElementScroll(element);\n var withScroll = dom.addScroll(removedOffset, stackingScroll);\n var scrollPosition = this.elementScrollPosition(anchor, element);\n var result = dom.removeScroll(withScroll, scrollPosition);\n result.left += window.scrollX || window.pageXOffset;\n result.top += window.scrollY || window.pageYOffset;\n return result;\n };\n AlignService.prototype.elementScrollPosition = function (anchor, element) {\n return anchor ? { x: 0, y: 0 } : this._dom.scrollPosition(element);\n };\n AlignService.prototype.relativeRect = function (anchor, element, offset) {\n return eitherRect(this._dom.position(anchor, element), offset);\n };\n return AlignService;\n}());\nexport { AlignService };\n","import { align, applyLocationOffset, boundingOffset, getWindowViewPort, isBodyOffset, offset, positionWithScroll, restrictToView, addScroll, removeScroll, scrollPosition, siblingContainer } from '@progress/kendo-popup-common';\nimport { HAS_RELATIVE_STACKING_CONTEXT, scrollableParents, zIndex } from '../util';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n }\n DOMService.prototype.addOffset = function (current, addition) {\n return {\n left: current.left + addition.left,\n top: current.top + addition.top\n };\n };\n DOMService.prototype.align = function (settings) {\n return align(settings);\n };\n DOMService.prototype.boundingOffset = function (el) {\n return boundingOffset(el);\n };\n DOMService.prototype.getWindow = function () {\n return canUseDOM ? window : null;\n };\n DOMService.prototype.isBodyOffset = function (el) {\n return isBodyOffset(el);\n };\n DOMService.prototype.hasOffsetParent = function (el) {\n if (!el) {\n return false;\n }\n var offsetParentEl = el.offsetParent;\n return offsetParentEl &&\n !(offsetParentEl.nodeName === 'BODY' &&\n window.getComputedStyle(offsetParentEl).position === 'static');\n };\n DOMService.prototype.offset = function (el) {\n if (!el) {\n return null;\n }\n return offset(el);\n };\n DOMService.prototype.staticOffset = function (element) {\n if (!element) {\n return null;\n }\n var _a = element.style, left = _a.left, top = _a.top;\n element.style.left = '0px';\n element.style.top = '0px';\n var currentOffset = offset(element);\n element.style.left = left;\n element.style.top = top;\n return currentOffset;\n };\n DOMService.prototype.position = function (element, popup) {\n if (!element || !popup) {\n return null;\n }\n var parentSibling = siblingContainer(element, popup);\n return positionWithScroll(element, parentSibling);\n };\n DOMService.prototype.relativeOffset = function (el, currentLocation) {\n return applyLocationOffset(this.offset(el), currentLocation, this.isBodyOffset(el));\n };\n DOMService.prototype.addScroll = function (rect, scroll) {\n return addScroll(rect, scroll);\n };\n DOMService.prototype.removeScroll = function (rect, scroll) {\n return removeScroll(rect, scroll);\n };\n DOMService.prototype.restrictToView = function (settings) {\n return restrictToView(settings);\n };\n DOMService.prototype.scrollPosition = function (el) {\n return scrollPosition(el);\n };\n DOMService.prototype.scrollableParents = function (el) {\n return scrollableParents(el);\n };\n DOMService.prototype.stackingElementOffset = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return offset(relativeContextElement);\n };\n DOMService.prototype.stackingElementScroll = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return { x: 0, y: 0 };\n }\n return {\n x: relativeContextElement.scrollLeft,\n y: relativeContextElement.scrollTop\n };\n };\n DOMService.prototype.stackingElementViewPort = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return {\n height: relativeContextElement.scrollHeight,\n width: relativeContextElement.scrollWidth\n };\n };\n DOMService.prototype.getRelativeContextElement = function (el) {\n if (!el || !HAS_RELATIVE_STACKING_CONTEXT) {\n return null;\n }\n var parent = el.parentElement;\n while (parent) {\n if (window.getComputedStyle(parent).transform !== 'none') {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n };\n DOMService.prototype.useRelativePosition = function (el) {\n return !!this.getRelativeContextElement(el);\n };\n DOMService.prototype.windowViewPort = function (el) {\n return getWindowViewPort(el);\n };\n DOMService.prototype.zIndex = function (anchor, container) {\n return zIndex(anchor, container);\n };\n DOMService.prototype.zoomLevel = function () {\n if (!canUseDOM) {\n return 1;\n }\n return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2));\n };\n DOMService.prototype.isZoomed = function () {\n return this.zoomLevel() > 1;\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { eitherRect, replaceOffset } from '../util';\n/**\n * @hidden\n */\nvar PositionService = /** @class */ (function () {\n function PositionService(_dom) {\n this._dom = _dom;\n }\n PositionService.prototype.positionElement = function (settings) {\n var anchor = settings.anchor, currentLocation = settings.currentLocation, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, collisions = settings.collisions;\n var dom = this._dom;\n var viewPort = settings.viewPort || dom.stackingElementViewPort(element) || dom.windowViewPort(element);\n var anchorRect = eitherRect(dom.offset(anchor), currentLocation);\n var initialElementRect = replaceOffset(dom.staticOffset(element), currentLocation);\n var elementRect = this.elementRect(element, initialElementRect);\n var result = dom.restrictToView({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n collisions: collisions,\n elementAlign: elementAlign,\n elementRect: elementRect,\n viewPort: viewPort\n });\n return {\n flipped: result.flipped,\n offset: dom.addOffset(initialElementRect, result.offset)\n };\n };\n PositionService.prototype.elementRect = function (element, rect) {\n return this._dom.removeScroll(rect, this._dom.scrollPosition(element));\n };\n return PositionService;\n}());\nexport { PositionService };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-popup',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584105,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as PropTypes from 'prop-types';\nimport { slide } from './animation';\nimport { classNames, canUseDOM } from '@progress/kendo-react-common';\nimport { CollisionType, AlignPoint, throttle, FRAME_DURATION } from './util';\nimport { AlignService } from './services/alignService';\nimport { DOMService } from './services/domService';\nimport { PositionService } from './services/positionService';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nfunction isEquivalent(a, b) {\n if (a === b) {\n return true;\n }\n if (!!a !== !!b) {\n return false;\n }\n var aProps = Object.getOwnPropertyNames(a);\n var bProps = Object.getOwnPropertyNames(b);\n if (aProps.length !== bProps.length) {\n return false;\n }\n for (var i = 0; i < aProps.length; i++) {\n var propName = aProps[i];\n if (a[propName] !== b[propName]) {\n return false;\n }\n }\n return true;\n}\nvar DEFAULT_OFFSET = {\n left: -1000,\n top: 0\n};\nvar Status;\n(function (Status) {\n Status[\"hiding\"] = \"hiding\";\n Status[\"hidden\"] = \"hidden\";\n Status[\"showing\"] = \"showing\";\n Status[\"shown\"] = \"shown\";\n Status[\"reposition\"] = \"reposition\";\n})(Status || (Status = {}));\nvar ANIMATION_CONTAINER = 'k-animation-container';\nvar ANIMATION_CONTAINER_SHOWN = 'k-animation-container-shown';\nvar ANIMATION_CONTAINER_RELATIVE = 'k-animation-container-relative';\nvar ANIMATION_CONTAINER_CHILD = 'k-child-animation-container';\nvar K_POPUP = 'k-popup';\n/**\n * @hidden\n */\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = { current: Status.hidden, previous: Status.hidden, props: {} };\n _this._popup = null;\n _this.show = function (popup) {\n _this.setPosition(popup);\n _this.animate(popup.firstChild, 'enter', _this.onOpened);\n _this.setState({ current: Status.shown, previous: _this.state.current });\n };\n _this.setPosition = function (popup) {\n var _a = _this.props, anchorAlign = _a.anchorAlign, popupAlign = _a.popupAlign, collision = _a.collision, offset = _a.offset, anchor = _a.anchor;\n var popupContent = popup.firstElementChild;\n var _b = getComputedStyle(popupContent), contentWidth = _b.width, contentHeight = _b.height;\n // The absolute position prevents appearing of a scrollbar which could move the anchor element and breaks the positioning.\n popupContent.style.position = 'absolute';\n // Width and height are required since absolute position breaks the element sizing.\n popupContent.style.width = contentWidth;\n popupContent.style.height = contentHeight;\n var alignedOffset = _this._alignService.alignElement({\n anchor: anchor,\n element: popupContent,\n elementAlign: popupAlign,\n anchorAlign: anchorAlign,\n offset: offset\n });\n var position = _this._positionService.positionElement({\n anchor: anchor,\n anchorAlign: anchorAlign,\n collisions: collision,\n element: popupContent,\n currentLocation: alignedOffset,\n elementAlign: popupAlign\n });\n if (position.offset) {\n popup.style.top = position.offset.top + 'px';\n popup.style.left = position.offset.left + 'px';\n popupContent.style.position = '';\n popupContent.style.width = '';\n popupContent.style.height = '';\n }\n _this._flipped = position.flipped;\n };\n _this.onOpened = function () {\n var element = _this._popup;\n if (!element) {\n return;\n }\n if (_this.props.show) {\n element.classList.add(ANIMATION_CONTAINER_SHOWN);\n }\n _this.attachRepositionHandlers(element);\n if (_this.props.onOpen) {\n _this.props.onOpen.call(undefined, { target: _this });\n }\n };\n _this.animate = function (element, type, callback) {\n slide(element, _this._flipped ? 'up' : 'down', _this.animationDuration[type], type, callback);\n };\n _this.onClosing = function (popup) {\n if (!_this.props.show) {\n popup.classList.remove(ANIMATION_CONTAINER_SHOWN);\n }\n _this.detachRepositionHandlers();\n };\n _this.onClosed = function () {\n if (_this.state.current === Status.hiding && _this.state.previous === Status.shown) {\n _this.setState({ current: Status.hidden, previous: _this.state.current });\n }\n if (_this.props.onClose) {\n _this.props.onClose.call(undefined, { target: _this });\n }\n };\n validatePackage(packageMetadata);\n _this._domService = new DOMService();\n _this._alignService = new AlignService(_this._domService);\n _this._positionService = new PositionService(_this._domService);\n _this.reposition = throttle(_this.reposition.bind(_this), FRAME_DURATION);\n return _this;\n }\n /**\n * @hidden\n */\n Popup.getDerivedStateFromProps = function (props, state) {\n var show = props.show, anchor = props.anchor, anchorAlign = props.anchorAlign, appendTo = props.appendTo, collision = props.collision, popupAlign = props.popupAlign, className = props.className, popupClass = props.popupClass, style = props.style, offset = props.offset, contentKey = props.contentKey;\n var nextState = __assign({}, state, { props: {\n show: show, anchor: anchor, anchorAlign: anchorAlign, appendTo: appendTo, collision: collision, popupAlign: popupAlign, className: className, popupClass: popupClass, style: style, offset: offset, contentKey: contentKey\n } });\n if (props.show) {\n if (state.current === Status.hidden || state.current === Status.hiding) {\n return __assign({}, nextState, { current: Status.showing, previous: state.current });\n }\n if (state.current === Status.showing) {\n return __assign({}, nextState, { current: Status.shown, previous: state.current });\n }\n if (state.current === Status.shown &&\n (!isEquivalent(offset, state.props.offset) ||\n !isEquivalent(anchorAlign, state.props.anchorAlign) ||\n !isEquivalent(appendTo, state.props.appendTo) ||\n !isEquivalent(collision, state.props.collision) ||\n !isEquivalent(popupAlign, state.props.popupAlign) ||\n !isEquivalent(style, state.props.style) ||\n anchor !== state.props.anchor ||\n popupClass !== state.props.popupClass ||\n className !== state.props.className)) {\n return __assign({}, nextState, { current: Status.reposition, previous: state.current });\n }\n return nextState;\n }\n if (state.current === Status.hiding || state.current === Status.hidden) {\n return __assign({}, nextState, { current: Status.hidden, previous: state.current });\n }\n return __assign({}, nextState, { current: Status.hiding, previous: state.current });\n };\n /**\n * @hidden\n */\n Popup.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n else if (this.state.current === Status.hiding && this._popup) {\n this.onClosing(this._popup);\n this.animate(this._popup.firstChild, 'exit', this.onClosed);\n }\n else if (this.state.current === Status.reposition && this.state.previous === Status.shown) {\n this.setState({ current: Status.shown, previous: this.state.current });\n }\n else if (this.state.current === Status.shown &&\n prevProps.contentKey !== this.props.contentKey && this._popup) {\n this.setPosition(this._popup);\n }\n };\n /**\n * @hidden\n */\n Popup.prototype.componentDidMount = function () {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n };\n /**\n * @hidden\n */\n Popup.prototype.componentWillUnmount = function () {\n this.detachRepositionHandlers();\n };\n /**\n * @hidden\n */\n Popup.prototype.render = function () {\n var _this = this;\n var _a = this.props, children = _a.children, className = _a.className, popupClass = _a.popupClass, show = _a.show, id = _a.id;\n var appendTo = this.props.appendTo ?\n this.props.appendTo :\n canUseDOM ?\n (this.props.anchor && this.props.anchor.ownerDocument ? this.props.anchor.ownerDocument.body : document.body)\n : undefined;\n if (this.state.current === Status.reposition && this.state.previous === Status.shown && this._popup) {\n this.setPosition(this._popup);\n }\n var style = Object.assign({}, { position: 'absolute' }, this.props.style || {});\n var closing = this.state.current === Status.hiding;\n if ((show || closing) && appendTo) {\n var popup = (React.createElement(\"div\", { className: classNames(ANIMATION_CONTAINER, ANIMATION_CONTAINER_RELATIVE, className), id: id, ref: function (e) { return _this._popup = e; }, style: style },\n React.createElement(\"div\", { className: classNames(popupClass, K_POPUP, ANIMATION_CONTAINER_CHILD), style: { transitionDelay: '0ms' } }, children)));\n return ReactDOM.createPortal(popup, appendTo);\n }\n return null;\n };\n Object.defineProperty(Popup.prototype, \"animationDuration\", {\n get: function () {\n var animate = this.props.animate;\n var enter = 0;\n var exit = 0;\n if (animate) {\n if (animate === true) {\n enter = exit = 300;\n }\n else {\n enter = animate.openDuration || 0;\n exit = animate.closeDuration || 0;\n }\n }\n return { enter: enter, exit: exit };\n },\n enumerable: true,\n configurable: true\n });\n Popup.prototype.attachRepositionHandlers = function (element) {\n var _this = this;\n this.detachRepositionHandlers();\n this._scrollableParents = this._domService.scrollableParents(this.props.anchor || element);\n this._scrollableParents.map(function (p) { return p.addEventListener('scroll', _this.reposition); });\n window.addEventListener('resize', this.reposition);\n };\n Popup.prototype.detachRepositionHandlers = function () {\n var _this = this;\n if (this._scrollableParents) {\n this._scrollableParents.map(function (p) { return p.removeEventListener('scroll', _this.reposition); });\n this._scrollableParents = undefined;\n }\n window.removeEventListener('resize', this.reposition);\n };\n Popup.prototype.reposition = function () {\n this.setState({ current: Status.reposition, previous: this.state.current });\n };\n /**\n * @hidden\n */\n Popup.propTypes = {\n anchor: function (props) {\n var anchor = props.anchor;\n if (anchor && typeof anchor.nodeType !== 'number') {\n return new Error('Invalid prop `anchor` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n appendTo: function (props) {\n var element = props.appendTo;\n if (element && typeof element.nodeType !== 'number') {\n return new Error('Invalid prop `appendTo` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n className: PropTypes.string,\n id: PropTypes.string,\n popupClass: PropTypes.string,\n collision: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n CollisionType.fit,\n CollisionType.flip\n ]),\n vertical: PropTypes.oneOf([\n CollisionType.fit,\n CollisionType.flip\n ])\n }),\n anchorAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n popupAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n offset: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number\n }),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node\n ]),\n show: PropTypes.bool,\n animate: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })\n ])\n };\n /**\n * @hidden\n */\n Popup.defaultProps = {\n collision: {\n horizontal: CollisionType.fit,\n vertical: CollisionType.flip\n },\n anchorAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.bottom\n },\n popupAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.top\n },\n offset: DEFAULT_OFFSET,\n animate: true,\n // appendTo: document.body,\n show: false\n };\n return Popup;\n}(React.Component));\nexport { Popup };\n","var __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};\nimport * as React from 'react';\nimport { Popup as PopupComponent } from './Popup';\n/**\n * The PopupPropsContext. It allows to configure the Popup props from a wrapper component.\n *\n * @example\n * ```jsx-no-run\n * ({ ...props, appendTo: document.querySelector('myPopupsContainer') })}>\n * \n * \n * \n * ```\n */\nexport var PopupPropsContext = React.createContext(function (props) { return props; });\n/**\n * The KendoReact Popup component.\n */\nexport var Popup = React.forwardRef(function (props, ref) {\n var contextPropsCallback = React.useContext(PopupPropsContext);\n var popupProps = contextPropsCallback.call(undefined, props);\n return (React.createElement(PopupComponent, __assign({ ref: ref }, popupProps)));\n});\n","/**\n * @hidden\n */\nexport function getAnchorAlign(isDirectionRightToLeft) {\n var align = { horizontal: 'left', vertical: 'bottom' };\n if (isDirectionRightToLeft) {\n align.horizontal = 'right';\n }\n return align;\n}\n/**\n * @hidden\n */\nexport function getPopupAlign(isDirectionRightToLeft) {\n var align = { horizontal: 'left', vertical: 'top' };\n if (isDirectionRightToLeft) {\n align.horizontal = 'right';\n }\n return align;\n}\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Button } from './../main';\nimport { classNames, guid, Keys } from '@progress/kendo-react-common';\nimport { dispatchEvent } from '@progress/kendo-react-common';\nimport ButtonItem from './ButtonItem';\nimport SplitButtonItem from './SplitButtonItem';\nimport navigation from './utils/navigation';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { getAnchorAlign, getPopupAlign } from './utils/popup';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport util from '../util';\nvar styles = util.styles;\n/**\n * Represents the [KendoReact SplitButton component]({% slug overview_splitbutton %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return (\n * \n * \n * \n * \n * \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n function SplitButton(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {\n focused: false,\n focusedIndex: -1,\n opened: false\n };\n _this.wrapper = null;\n _this.mainButton = null;\n _this.guid = guid();\n _this.buttonsData = [];\n _this.onKeyDown = function (event) {\n var focusedIndex = _this.state.focusedIndex;\n if (event.altKey) {\n if (!_this.opened && event.keyCode === Keys.down) {\n _this.dispatchPopupEvent(event, true);\n _this.setState({ focusedIndex: 0, opened: true });\n }\n else if (_this.opened && event.keyCode === Keys.up) {\n _this.dispatchPopupEvent(event, false);\n _this.setState({ focusedIndex: -1, opened: false });\n }\n return;\n }\n var newState = undefined;\n if (event.keyCode === Keys.enter || event.keyCode === Keys.space) {\n // Prevent default because otherwise when an item is selected\n // click on the default button gets emitted which opens the popup again.\n event.preventDefault();\n _this.dispatchClickEvent(event, focusedIndex);\n if (focusedIndex >= 0) {\n newState = {\n focusedIndex: _this.opened ? -1 : 0,\n opened: !_this.opened\n };\n _this.dispatchPopupEvent(event, newState.opened);\n }\n }\n else if (_this.opened && event.keyCode === Keys.esc) {\n newState = {\n focusedIndex: -1,\n opened: false\n };\n _this.dispatchPopupEvent(event, newState.opened);\n }\n if (_this.opened) {\n var newFocused = navigation(focusedIndex, event.keyCode, event.altKey, _this.buttonsData.length);\n if (newFocused !== focusedIndex) {\n newState = newState || {};\n newState.focusedIndex = newFocused;\n }\n var arrowKey = event.keyCode === Keys.up || event.keyCode === Keys.down ||\n event.keyCode === Keys.left || event.keyCode === Keys.right;\n if (!event.altKey && arrowKey) {\n // Needed to notify the parent listeners that event is handled.\n event.preventDefault();\n }\n }\n if (newState) {\n _this.setState(newState);\n }\n };\n _this.onFocus = function (event) {\n dispatchEvent(_this.props.onFocus, event, _this, undefined);\n _this.setState({ focused: true, focusedIndex: -1 });\n };\n _this.onItemClick = function (event, clickedItemIndex) {\n var opened = _this.opened;\n if (opened) {\n _this.setState({ focusedIndex: 0, opened: false });\n }\n _this.dispatchClickEvent(event, clickedItemIndex);\n if (opened) {\n _this.dispatchPopupEvent(event, false);\n }\n };\n _this.onBlur = function (event) {\n _this.setState({\n focused: false,\n focusedIndex: -1,\n opened: false\n });\n dispatchEvent(_this.props.onBlur, event, _this, undefined);\n if (_this.opened) {\n _this.dispatchPopupEvent(event, false);\n }\n };\n _this.onSplitPartClick = function (event) {\n if (_this.buttonsData.length) {\n var toOpen = !_this.opened;\n _this.dispatchPopupEvent(event, toOpen);\n _this.setState({\n focusedIndex: toOpen ? 0 : -1,\n opened: toOpen,\n focused: true\n });\n }\n };\n _this.onDownSplitPart = function (event) {\n event.preventDefault();\n if (_this.element && document.activeElement !== _this.element) {\n _this.element.focus();\n }\n };\n _this.onItemDown = function (event) {\n if (document.activeElement === _this.element) {\n event.preventDefault();\n }\n };\n _this.dispatchPopupEvent = function (dispatchedEvent, open) {\n dispatchEvent(open ? _this.props.onOpen : _this.props.onClose, dispatchedEvent, _this, undefined);\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(SplitButton.prototype, \"opened\", {\n get: function () {\n return this.props.opened === undefined ? this.state.opened : this.props.opened;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n SplitButton.prototype.render = function () {\n var _this = this;\n this.buttonsData = this.props.items ||\n React.Children.toArray(this.props.children)\n .filter(function (child) { return child && child.type === SplitButtonItem; })\n .map(function (child) { return child.props; });\n var rtl = this.isRtl();\n var dir = rtl ? 'rtl' : undefined;\n var _a = this.props, tabIndex = _a.tabIndex, disabled = _a.disabled;\n var focusedIndex = this.state.focusedIndex;\n return (React.createElement(\"div\", { className: classNames('k-widget', 'k-split-button', 'k-button-group', [styles[\"\" + this.props.look]], {\n 'k-state-focused': this.state.focused\n }, this.props.className), onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, dir: dir, ref: function (el) { return _this.wrapper = el; } },\n React.createElement(Button, { onClick: function (event) { return _this.onItemClick(event, -1); }, disabled: disabled || undefined, tabIndex: tabIndex, accessKey: this.props.accessKey, className: this.props.buttonClass, icon: this.props.icon, iconClass: this.props.iconClass, imageUrl: this.props.imageUrl, look: this.props.look, dir: dir, ref: function (el) { return _this.mainButton = el && el.element; }, type: \"button\", \"aria-disabled\": disabled, \"aria-haspopup\": true, \"aria-expanded\": this.opened, \"aria-label\": this.props.text + \" splitbutton\", \"aria-owns\": this.guid, \"aria-activedescendant\": focusedIndex >= 0 ? this.guid + \"-\" + focusedIndex : undefined }, this.props.text),\n React.createElement(Button, { icon: \"arrow-s\", disabled: disabled || undefined, tabIndex: -1, look: this.props.look, onClick: this.onSplitPartClick, onMouseDown: this.onDownSplitPart, onPointerDown: this.onDownSplitPart, dir: dir, \"aria-label\": \"menu toggling button\" }),\n this.renderPopup(rtl)));\n };\n /**\n * @hidden\n */\n SplitButton.prototype.componentDidMount = function () {\n // If this.props.opened is true during the initial render, the popup is not aligned.\n if ((this.props.dir === undefined && this.isRtl()) || this.opened) {\n this.forceUpdate();\n }\n };\n Object.defineProperty(SplitButton.prototype, \"element\", {\n /**\n * The DOM element of main button.\n */\n get: function () {\n return this.mainButton;\n },\n enumerable: true,\n configurable: true\n });\n SplitButton.prototype.dispatchClickEvent = function (dispatchedEvent, clickedItemIndex) {\n if (!this.isItemDisabled(clickedItemIndex)) {\n if (clickedItemIndex === -1) {\n dispatchEvent(this.props.onButtonClick, dispatchedEvent, this, undefined);\n }\n else {\n dispatchEvent(this.props.onItemClick, dispatchedEvent, this, {\n item: this.buttonsData[clickedItemIndex],\n itemIndex: clickedItemIndex\n });\n }\n }\n };\n SplitButton.prototype.renderPopup = function (rtl) {\n var _a = this.props.popupSettings, popupSettings = _a === void 0 ? {} : _a;\n return (React.createElement(Popup, { anchor: this.wrapper, show: this.opened, animate: popupSettings.animate, popupClass: classNames('k-list-container k-reset k-group', popupSettings.popupClass), anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl), popupAlign: popupSettings.popupAlign || getPopupAlign(rtl), style: rtl ? { direction: 'rtl' } : undefined },\n React.createElement(\"ul\", { className: \"k-list k-reset\", role: \"menu\", id: this.guid }, this.renderChildItems())));\n };\n SplitButton.prototype.renderChildItems = function () {\n var _this = this;\n var _a = this.props, item = _a.item, itemRender = _a.itemRender, textField = _a.textField;\n return this.buttonsData.length > 0 ? (this.buttonsData.map(function (dataItem, index) {\n return (React.createElement(ButtonItem, { dataItem: dataItem, textField: textField, focused: _this.state.focusedIndex === index, onClick: _this.onItemClick, onDown: _this.onItemDown, render: itemRender, item: item, key: index, index: index, id: _this.guid + \"-\" + index }));\n })) : null;\n };\n SplitButton.prototype.isItemDisabled = function (index) {\n return this.buttonsData[index] ? this.buttonsData[index].disabled : this.props.disabled;\n };\n SplitButton.prototype.isRtl = function () {\n return this.props.dir !== undefined ? this.props.dir === 'rtl' :\n !!this.wrapper && getComputedStyle(this.wrapper).direction === 'rtl';\n };\n /**\n * @hidden\n */\n SplitButton.propTypes = {\n accessKey: PropTypes.string,\n onButtonClick: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onItemClick: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n text: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.any),\n textField: PropTypes.string,\n tabIndex: PropTypes.number,\n disabled: PropTypes.bool,\n icon: PropTypes.string,\n iconClass: PropTypes.string,\n imageUrl: PropTypes.string,\n popupSettings: PropTypes.object,\n itemRender: PropTypes.any,\n item: PropTypes.func,\n look: PropTypes.string,\n className: PropTypes.string,\n buttonClass: PropTypes.string,\n dir: PropTypes.string\n };\n return SplitButton;\n}(React.Component));\nexport default SplitButton;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nvar DropDownButtonItem = /** @class */ (function (_super) {\n __extends(DropDownButtonItem, _super);\n function DropDownButtonItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n DropDownButtonItem.prototype.render = function () {\n return null;\n };\n /**\n * @hidden\n */\n DropDownButtonItem.propTypes = {\n text: PropTypes.string,\n icon: PropTypes.string,\n iconClass: PropTypes.string,\n imageUrl: PropTypes.string,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n render: PropTypes.any\n };\n return DropDownButtonItem;\n}(React.Component));\nexport default DropDownButtonItem;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Button } from './../main';\nimport { classNames, guid, Keys } from '@progress/kendo-react-common';\nimport { dispatchEvent } from '@progress/kendo-react-common';\nimport navigation from './utils/navigation';\nimport DropDownButtonItem from './DropDownButtonItem';\nimport ButtonItem from './ButtonItem';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { getAnchorAlign, getPopupAlign } from './utils/popup';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the [KendoReact DropDownButton component]({% slug overview_dropdownbutton %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return (\n * \n * \n * \n * \n * \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n function DropDownButton(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {\n opened: false,\n focused: false,\n focusedIndex: -1\n };\n _this.wrapper = null;\n _this.mainButton = null;\n _this.guid = guid();\n _this.buttonsData = [];\n _this.onKeyDown = function (event) {\n var focusedIndex = _this.state.focusedIndex;\n if (event.altKey) {\n if (!_this.opened && event.keyCode === Keys.down) {\n _this.dispatchPopupEvent(event, true);\n _this.setState({ focusedIndex: 0, opened: true });\n }\n else if (_this.opened && event.keyCode === Keys.up) {\n _this.dispatchPopupEvent(event, false);\n _this.setState({ focusedIndex: -1, opened: false });\n }\n return;\n }\n var newState = __assign({}, _this.state);\n if (event.keyCode === Keys.enter || event.keyCode === Keys.space) {\n if (focusedIndex >= 0) {\n _this.dispatchClickEvent(event, focusedIndex);\n }\n // Prevent default because otherwise when an item is selected\n // click on the default button gets emitted which opens the popup again.\n event.preventDefault();\n newState.focusedIndex = _this.opened ? -1 : 0,\n newState.opened = !_this.opened;\n _this.dispatchPopupEvent(event, newState.opened);\n }\n else if (_this.opened && event.keyCode === Keys.esc) {\n newState.focusedIndex = -1;\n newState.opened = false;\n _this.dispatchPopupEvent(event, newState.opened);\n }\n if (_this.opened) {\n var newFocused = navigation(focusedIndex, event.keyCode, event.altKey, _this.buttonsData.length);\n newState.focusedIndex = newFocused;\n var arrowKey = event.keyCode === Keys.up || event.keyCode === Keys.down ||\n event.keyCode === Keys.left || event.keyCode === Keys.right;\n if (!event.altKey && arrowKey) {\n // Needed to notify the parent listeners that event is handled.\n event.preventDefault();\n }\n }\n _this.setState(newState);\n };\n _this.onFocus = function (event) {\n _this.setState({ focused: true, focusedIndex: _this.opened ? 0 : -1 });\n dispatchEvent(_this.props.onFocus, event, _this, undefined);\n };\n _this.onBlur = function (event) {\n _this.setState({ focused: false, opened: false, focusedIndex: -1 });\n dispatchEvent(_this.props.onBlur, event, _this, undefined);\n var fireCloseEvent = _this.opened;\n if (fireCloseEvent) {\n _this.dispatchPopupEvent(event, false);\n }\n };\n _this.onItemClick = function (event, clickedItemIndex) {\n _this.setState({ focusedIndex: -1, opened: false });\n _this.dispatchClickEvent(event, clickedItemIndex);\n _this.dispatchPopupEvent(event, false);\n };\n _this.onItemDown = function (event) {\n if (document.activeElement === _this.element) {\n event.preventDefault();\n }\n };\n _this.mouseDown = function (event) {\n event.preventDefault();\n };\n _this.onClickMainButton = function (event) {\n if (!_this.buttonsData.length) {\n return;\n }\n var toOpen = !_this.opened;\n _this.setState({\n opened: toOpen,\n focused: true,\n focusedIndex: toOpen ? 0 : -1\n });\n _this.dispatchPopupEvent(event, toOpen);\n };\n _this.dispatchPopupEvent = function (dispatchedEvent, open) {\n dispatchEvent(open ? _this.props.onOpen : _this.props.onClose, dispatchedEvent, _this, undefined);\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(DropDownButton.prototype, \"opened\", {\n get: function () {\n return this.props.opened === undefined ? this.state.opened : this.props.opened;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n DropDownButton.prototype.render = function () {\n var _this = this;\n var rtl = this.isRtl();\n var dir = rtl ? 'rtl' : undefined;\n var _a = this.props, tabIndex = _a.tabIndex, disabled = _a.disabled;\n var focusedIndex = this.state.focusedIndex;\n this.buttonsData = this.props.items ||\n React.Children.toArray(this.props.children)\n .filter(function (child) { return child && child.type === DropDownButtonItem; })\n .map(function (child) { return child.props; });\n return (React.createElement(\"div\", { className: classNames('k-widget', 'k-dropdown-button', this.props.className, {\n 'k-state-focused': this.state.focused\n }), onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, dir: dir, ref: function (el) { return _this.wrapper = el; } },\n React.createElement(Button, { onClick: this.onClickMainButton, onMouseDown: this.mouseDown, disabled: disabled || undefined, tabIndex: tabIndex, accessKey: this.props.accessKey, icon: this.props.icon, iconClass: this.props.iconClass, className: this.props.buttonClass, imageUrl: this.props.imageUrl, look: this.props.look, primary: this.props.primary, dir: dir, ref: function (btn) { return _this.mainButton = btn && btn.element; }, type: \"button\", \"aria-disabled\": disabled, \"aria-haspopup\": true, \"aria-expanded\": this.opened, \"aria-label\": this.props.text + \" dropdownbutton\", \"aria-owns\": this.guid, \"aria-activedescendant\": focusedIndex >= 0 ? this.guid + \"-\" + focusedIndex : undefined }, this.props.text),\n this.renderPopup(rtl)));\n };\n /**\n * @hidden\n */\n DropDownButton.prototype.componentDidMount = function () {\n // If this.props.opened is true during the initial render, the popup is not aligned.\n if ((this.props.dir === undefined && this.isRtl()) || this.opened) {\n this.forceUpdate();\n }\n };\n /**\n * @hidden\n */\n DropDownButton.prototype.componentDidUpdate = function () {\n if (this.state.focused && this.element) {\n // firefox in mac does not focus on mouse-down, next line fixes this\n this.element.focus();\n }\n };\n Object.defineProperty(DropDownButton.prototype, \"element\", {\n /**\n * The DOM element of main button.\n */\n get: function () {\n return this.mainButton;\n },\n enumerable: true,\n configurable: true\n });\n DropDownButton.prototype.dispatchClickEvent = function (dispatchedEvent, index) {\n if (!this.isItemDisabled(index)) {\n dispatchEvent(this.props.onItemClick, dispatchedEvent, this, {\n item: this.buttonsData[index],\n itemIndex: index\n });\n }\n };\n DropDownButton.prototype.renderPopup = function (rtl) {\n var _a = this.props.popupSettings, popupSettings = _a === void 0 ? {} : _a;\n return (React.createElement(Popup, { anchor: this.wrapper, show: this.opened, animate: popupSettings.animate, popupClass: classNames('k-list-container k-reset k-group', popupSettings.popupClass), anchorAlign: popupSettings.anchorAlign || getAnchorAlign(rtl), popupAlign: popupSettings.popupAlign || getPopupAlign(rtl), style: rtl ? { direction: 'rtl' } : undefined },\n React.createElement(\"ul\", { className: \"k-list k-reset\", role: \"menu\", id: this.guid }, this.renderChildItems())));\n };\n DropDownButton.prototype.renderChildItems = function () {\n var _this = this;\n var _a = this.props, item = _a.item, itemRender = _a.itemRender, textField = _a.textField;\n return this.buttonsData.length > 0 ? (this.buttonsData.map(function (dataItem, index) {\n return (React.createElement(ButtonItem, { dataItem: dataItem, textField: textField, focused: _this.state.focusedIndex === index, onClick: _this.onItemClick, onDown: _this.onItemDown, render: itemRender, item: item, index: index, key: index, id: _this.guid + \"-\" + index }));\n })) : null;\n };\n DropDownButton.prototype.isItemDisabled = function (index) {\n return this.buttonsData[index] ? this.buttonsData[index].disabled : this.props.disabled;\n };\n DropDownButton.prototype.isRtl = function () {\n return this.props.dir !== undefined ? this.props.dir === 'rtl' :\n !!this.wrapper && getComputedStyle(this.wrapper).direction === 'rtl';\n };\n /**\n * @hidden\n */\n DropDownButton.propTypes = {\n accessKey: PropTypes.string,\n primary: PropTypes.bool,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onItemClick: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n items: PropTypes.arrayOf(PropTypes.any),\n textField: PropTypes.string,\n tabIndex: PropTypes.number,\n disabled: PropTypes.bool,\n icon: PropTypes.string,\n iconClass: PropTypes.string,\n imageUrl: PropTypes.string,\n popupSettings: PropTypes.object,\n itemRender: PropTypes.func,\n item: PropTypes.func,\n look: PropTypes.string,\n className: PropTypes.string,\n buttonClass: PropTypes.string,\n dir: PropTypes.string\n };\n return DropDownButton;\n}(React.Component));\nexport default DropDownButton;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, Keys } from '@progress/kendo-react-common';\nimport { toolbarButtons } from './../util';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the [KendoReact Toolbar component]({% slug overview_toolbar %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return (\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar Toolbar = /** @class */ (function (_super) {\n __extends(Toolbar, _super);\n function Toolbar(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n _this.offsetHeight = 0;\n _this.offsetWidth = 0;\n _this.buttons = [];\n _this.focusedSelector = _this.selectors.map(function (s) { return s + ':focus'; }).join(',');\n _this.setTabIndex = function (focusedIndex) {\n var _a = _this.props.tabIndex, tabIndex = _a === void 0 ? Toolbar.defaultProps.tabIndex : _a;\n _this.buttons.forEach(function (button, index) {\n button.tabIndex = (index === focusedIndex) ? tabIndex : -1;\n });\n };\n _this.onKeyDown = function (event) {\n var target = event.target;\n var arrowKey = event.keyCode === Keys.left || event.keyCode === Keys.right;\n if (!arrowKey || event.defaultPrevented || _this.buttons.findIndex(function (b) { return b === target; }) === -1) {\n return;\n }\n var focusedIndex = _this.focusedIndex;\n if (event.keyCode === Keys.left) {\n _this.focusButton(focusedIndex, focusedIndex - 1);\n }\n else {\n _this.focusButton(focusedIndex, focusedIndex + 1);\n }\n };\n _this.onWindowResize = function (event) {\n var element = _this.element;\n if (!element) {\n return;\n }\n var offsetWidth = element.offsetWidth;\n var offsetHeight = element.offsetHeight;\n if (_this.offsetWidth !== offsetWidth || _this.offsetHeight !== offsetHeight) {\n _this.offsetWidth = offsetWidth;\n _this.offsetHeight = offsetHeight;\n var newSizes = { offsetWidth: _this.offsetWidth, offsetHeight: _this.offsetHeight };\n if (_this.props.onResize) {\n _this.props.onResize.call(undefined, __assign({ target: _this }, newSizes, { nativeEvent: event }));\n }\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(Toolbar.prototype, \"selectors\", {\n get: function () {\n return this.props.buttons || toolbarButtons;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Toolbar.prototype, \"focusedIndex\", {\n get: function () {\n var focused = this.element && this.element.querySelector(this.focusedSelector);\n return Math.max(0, this.buttons.findIndex(function (e) { return e === focused; }));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Toolbar.prototype, \"element\", {\n /**\n * Returns the HTML element of the Toolbar component.\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n Toolbar.prototype.componentDidMount = function () {\n window.addEventListener('resize', this.onWindowResize);\n var element = this.element;\n if (element) {\n this.offsetWidth = element.offsetWidth;\n this.offsetHeight = element.offsetHeight;\n if (this.props.keyboardNavigation !== false) {\n this.buttons = Array.from(element.querySelectorAll(this.selectors.join(',')));\n this.setTabIndex(0);\n }\n }\n };\n /**\n * @hidden\n */\n Toolbar.prototype.componentDidUpdate = function () {\n var element = this.element;\n if (!element || this.props.keyboardNavigation === false) {\n return;\n }\n this.buttons = Array.from(element.querySelectorAll(this.selectors.join(',')));\n this.setTabIndex(this.focusedIndex);\n };\n /**\n * @hidden\n */\n Toolbar.prototype.componentWillUnmount = function () {\n window.removeEventListener('resize', this.onWindowResize);\n this.buttons.length = 0;\n };\n /**\n * @hidden\n */\n Toolbar.prototype.render = function () {\n var _this = this;\n return (React.createElement(\"div\", { className: classNames('k-widget k-toolbar', this.props.className), style: this.props.style, role: \"toolbar\", dir: this.props.dir, ref: function (element) { return _this._element = element; }, onKeyDown: this.props.keyboardNavigation !== false ? this.onKeyDown : undefined }, this.props.children));\n };\n Toolbar.prototype.focusButton = function (prevIndex, index) {\n var _a = this.props.tabIndex, tabIndex = _a === void 0 ? Toolbar.defaultProps.tabIndex : _a;\n var button = this.buttons[index];\n if (button) {\n button.tabIndex = tabIndex;\n button.focus();\n var prevButton = this.buttons[prevIndex];\n if (prevButton) {\n prevButton.tabIndex = -1;\n }\n }\n };\n /**\n * @hidden\n */\n Toolbar.propTypes = {\n tabIndex: PropTypes.number,\n dir: PropTypes.string,\n keyboardNavigation: PropTypes.bool,\n style: PropTypes.object,\n className: PropTypes.string,\n onResize: PropTypes.func,\n buttons: PropTypes.arrayOf(PropTypes.string)\n };\n /**\n * @hidden\n */\n Toolbar.defaultProps = {\n tabIndex: 0\n };\n return Toolbar;\n}(React.Component));\nexport default Toolbar;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\n/**\n * Represents the KendoReact ToolbarItem component.\n * To add a tool to the Toolbar, wrap it inside a ToolbarItem component\n * ([see example]({% slug content_toolbar %})).\n */\nvar ToolbarItem = /** @class */ (function (_super) {\n __extends(ToolbarItem, _super);\n function ToolbarItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._element = null;\n return _this;\n }\n Object.defineProperty(ToolbarItem.prototype, \"element\", {\n /**\n * Returns the HTML element of the ToolbarItem component.\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n ToolbarItem.prototype.render = function () {\n var _this = this;\n return (React.createElement(\"span\", { className: this.props.className, style: this.props.style, ref: function (e) { return _this._element = e; } }, this.props.children));\n };\n /**\n * @hidden\n */\n ToolbarItem.propTypes = {\n className: PropTypes.string\n };\n return ToolbarItem;\n}(React.PureComponent));\nexport default ToolbarItem;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport ToolbarItem from './ToolbarItem';\n/**\n * Represents the KendoReact Toolbar Separator component.\n */\nvar ToolbarSeparator = /** @class */ (function (_super) {\n __extends(ToolbarSeparator, _super);\n function ToolbarSeparator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n ToolbarSeparator.prototype.render = function () {\n return (React.createElement(ToolbarItem, { className: \"k-separator\" }));\n };\n return ToolbarSeparator;\n}(React.PureComponent));\nexport default ToolbarSeparator;\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * Represents the KendoReact ToolbarSpacer component.\n * To specify an empty space, provide a ToolbarSpacer component\n * ([see example]({% slug content_toolbar %})).\n */\nexport var ToolbarSpacer = React.forwardRef(function (props, ref) {\n var element = React.useRef(null);\n var spacer = React.useRef(null);\n React.useImperativeHandle(spacer, function () { return ({ element: element.current }); });\n React.useImperativeHandle(ref, function () { return ({ element: element.current }); });\n var className = React.useMemo(function () { return classNames('k-spacer', props.className); }, [props.className]);\n return (React.createElement(\"span\", { ref: element, className: className }));\n});\nToolbarSpacer.propTypes = {\n className: PropTypes.string\n};\n","/**\n * @hidden\n */\nexport var SELECTION_TYPE;\n(function (SELECTION_TYPE) {\n SELECTION_TYPE[\"single\"] = \"single\";\n SELECTION_TYPE[\"multiple\"] = \"multiple\";\n SELECTION_TYPE[\"none\"] = \"none\";\n})(SELECTION_TYPE || (SELECTION_TYPE = {}));\n/**\n * @hidden\n */\nexport var SELECTION_ACTION;\n(function (SELECTION_ACTION) {\n SELECTION_ACTION[\"toggle\"] = \"toggle\";\n SELECTION_ACTION[\"remove\"] = \"remove\";\n})(SELECTION_ACTION || (SELECTION_ACTION = {}));\n/**\n * @hidden\n */\nexport var selectionReducer = function (state, action) {\n switch (action.selection) {\n case SELECTION_TYPE.single:\n switch (action.type) {\n case SELECTION_ACTION.toggle: {\n if (!Array.isArray(state) || state === null) {\n return action.payload === state ? null : action.payload;\n }\n throw new Error('State cannot be an array in single selection');\n }\n case SELECTION_ACTION.remove: {\n return action.payload === state ? null : state;\n }\n default:\n return state;\n }\n case SELECTION_TYPE.multiple:\n switch (action.type) {\n case SELECTION_ACTION.toggle: {\n if (Array.isArray(state)) {\n return state.some(function (i) { return i === action.payload; })\n ? state.filter(function (i) { return i !== action.payload; })\n : state.concat([action.payload]);\n }\n if (state === null) {\n return [action.payload];\n }\n throw new Error('State cannot be non-array in multiple selection');\n }\n case SELECTION_ACTION.remove: {\n if (Array.isArray(state)) {\n return state.some(function (i) { return i === action.payload; })\n ? state.filter(function (i) { return i !== action.payload; })\n : state.concat([action.payload]);\n }\n return state;\n }\n default:\n return state;\n }\n case SELECTION_TYPE.none:\n return null;\n default:\n return state;\n }\n};\n","/**\n * @hidden\n */\nexport var FOCUS_ACTION;\n(function (FOCUS_ACTION) {\n FOCUS_ACTION[\"next\"] = \"next\";\n FOCUS_ACTION[\"prev\"] = \"prev\";\n FOCUS_ACTION[\"current\"] = \"current\";\n FOCUS_ACTION[\"reset\"] = \"reset\";\n})(FOCUS_ACTION || (FOCUS_ACTION = {}));\n/**\n * @hidden\n */\nexport var focusReducer = function (state, action) {\n var currentIndex = action.items.findIndex(function (i) { return i === state; });\n switch (action.type) {\n case FOCUS_ACTION.next:\n return currentIndex === action.items.length - 1\n ? state\n : action.items[currentIndex + 1];\n case FOCUS_ACTION.prev:\n return currentIndex === 0\n ? state\n : action.items[currentIndex - 1];\n case FOCUS_ACTION.current:\n return action.payload;\n case FOCUS_ACTION.reset:\n return null;\n default:\n return state;\n }\n};\n","/**\n * @hidden\n */\nexport var DATA_ACTION;\n(function (DATA_ACTION) {\n DATA_ACTION[\"remove\"] = \"remove\";\n DATA_ACTION[\"add\"] = \"add\";\n DATA_ACTION[\"reorder\"] = \"reorder\";\n})(DATA_ACTION || (DATA_ACTION = {}));\n/**\n * @hidden\n */\nexport var dataReducer = function (state, action) {\n switch (action.type) {\n case DATA_ACTION.add:\n // TODO v2\n break;\n case DATA_ACTION.remove:\n return state.filter(function (i) { return i[action.valueField] !== action.payload; });\n case DATA_ACTION.reorder:\n // TODO v2\n break;\n default:\n return state;\n }\n};\n","var __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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { useDir, getTabIndex, classNames, useMouse } from '@progress/kendo-react-common';\nimport { selectionReducer } from './selection-reducer';\nimport { focusReducer } from './focus-reducer';\nimport { dataReducer } from './data-reducer';\nimport { Chip } from './Chip';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nexport var ChipListSelectionContext = React.createContext([null, function (_args) {\n /**/\n }]);\n/**\n * @hidden\n */\nexport var ChipListFocusContext = React.createContext([null, function (_args) {\n /**/\n }]);\n/**\n * @hidden\n */\nexport var ChipListDataContext = React.createContext([null, function (_args) {\n /**/\n }]);\n/**\n * @hidden\n */\nvar useSelection = function (defaultValue, args, callback) {\n var _a = React.useState(defaultValue), state = _a[0], setState = _a[1];\n var handleDispatchSelection = function (action) {\n var newState = selectionReducer(args.state || state, __assign({}, action, args));\n if (callback) {\n callback(newState, action.event);\n }\n setState(newState);\n };\n return [state, handleDispatchSelection];\n};\n/**\n * @hidden\n */\nvar useFocus = function (args) {\n var _a = React.useState(null), state = _a[0], setState = _a[1];\n var handleDispatchFocus = function (action) {\n var newState = focusReducer(action.payload, __assign({}, action, args));\n setState(newState);\n };\n return [state, handleDispatchFocus];\n};\n/**\n * @hidden\n */\nvar useData = function (defaultData, args, callback) {\n var _a = React.useState(defaultData), state = _a[0], setState = _a[1];\n var handleDispatchData = function (action) {\n var newState = dataReducer(args.state || state, __assign({}, action, args));\n if (callback) {\n callback(newState, action.event);\n }\n setState(newState);\n };\n return [state, handleDispatchData];\n};\n/**\n * Represents the ChipList component.\n */\nexport var ChipList = React.forwardRef(function (props, ref) {\n validatePackage(packageMetadata);\n var target = React.useRef(null);\n var chipListRef = React.useRef(null);\n var dir = useDir(chipListRef, props.dir);\n var ChipComponent = React.useMemo(function () { return props.chip || Chip; }, [props.chip, Chip]);\n var selection = React.useMemo(function () { return props.selection || defaultProps.selection; }, [props.selection, defaultProps.selection]);\n React.useImperativeHandle(target, function () { return ({\n element: chipListRef.current,\n props: props\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var handleChange = React.useCallback(function (newValue, event) {\n if (props.onChange && target.current) {\n props.onChange.call(undefined, {\n value: newValue,\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onChange]);\n var _a = useSelection(props.value || props.defaultValue, {\n selection: selection,\n state: props.value\n }, handleChange), stateValue = _a[0], dispatchStateValue = _a[1];\n var handleDataChange = React.useCallback(function (newData, event) {\n if (props.onDataChange && target.current) {\n props.onDataChange.call(undefined, {\n value: newData,\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onDataChange]);\n var _b = useData(props.data || props.defaultData || defaultProps.defaultData, {\n state: props.data,\n valueField: props.valueField || defaultProps.valueField\n }, handleDataChange), stateData = _b[0], dispatchData = _b[1];\n var itemsReducer = React.useCallback(function (acc, current) {\n acc.push(current[props.valueField || defaultProps.valueField]);\n return acc;\n }, [props.valueField, defaultProps.valueField]);\n var data = React.useMemo(function () { return props.data || stateData; }, [props.data, stateData]);\n var value = React.useMemo(function () { return props.value || stateValue; }, [props.value, stateValue]);\n var items = React.useMemo(function () { return data.reduce(itemsReducer, []); }, [data, itemsReducer]);\n var _c = useFocus({ items: items }), focus = _c[0], dispatchFocus = _c[1];\n var mouseProps = useMouse(props, target);\n return (React.createElement(ChipListSelectionContext.Provider, { value: [value, dispatchStateValue] },\n React.createElement(ChipListFocusContext.Provider, { value: [focus, dispatchFocus] },\n React.createElement(ChipListDataContext.Provider, { value: [data, dispatchData] },\n React.createElement(\"div\", __assign({ ref: chipListRef }, mouseProps, { role: 'listbox', id: props.id, dir: dir, style: props.style, tabIndex: getTabIndex(props.tabIndex, props.disabled, undefined), className: classNames('k-chip-list', {\n 'k-rtl': dir === 'rtl',\n 'k-selection-single': selection === 'single',\n 'k-selection-multiple': selection === 'multiple',\n 'k-state-disabled': props.disabled\n }, props.className), \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy }), data.map(function (item) {\n return (React.createElement(ChipComponent, { role: 'option', dataItem: item, key: item[props.valueField || defaultProps.valueField], text: item[props.textField || defaultProps.textField], value: item[props.valueField || defaultProps.valueField] }));\n }))))));\n});\nvar propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n tabIndex: PropTypes.number,\n data: PropTypes.any,\n defaultData: PropTypes.arrayOf(PropTypes.any),\n onDataChange: PropTypes.func,\n value: PropTypes.oneOfType([PropTypes.any, PropTypes.arrayOf(PropTypes.any)]),\n defaultValue: PropTypes.oneOfType([PropTypes.any, PropTypes.arrayOf(PropTypes.any)]),\n onChange: PropTypes.func,\n selection: PropTypes.oneOf(['single', 'none', 'multiple']),\n textField: PropTypes.string,\n valueField: PropTypes.string,\n disabled: PropTypes.bool,\n dir: PropTypes.oneOf(['ltr', 'rtl']),\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string\n};\nvar defaultProps = {\n chip: Chip,\n disabled: false,\n defaultValue: null,\n defaultData: [],\n dir: 'ltr',\n selection: 'none',\n textField: 'text',\n valueField: 'value',\n removable: 'removable'\n};\nChipList.displayName = 'KendoReactChipList';\n// TODO: delete casting when @types/react is updated!\nChipList.propTypes = propTypes;\nChipList.defaultProps = defaultProps;\n","var __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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { ChipListSelectionContext, ChipListFocusContext, ChipListDataContext } from './ChipList';\nimport { classNames, useDir, getTabIndex, Keys } from '@progress/kendo-react-common';\nimport { FOCUS_ACTION } from './focus-reducer';\nimport { DATA_ACTION } from './data-reducer';\nimport { SELECTION_ACTION } from './selection-reducer';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { useMouse } from '@progress/kendo-react-common';\n/**\n * Represents the Chip component.\n */\nexport var Chip = React.forwardRef(function (props, ref) {\n validatePackage(packageMetadata);\n var target = React.useRef(null);\n var chipRef = React.useRef(null);\n var dir = useDir(chipRef, props.dir);\n React.useImperativeHandle(target, function () { return ({\n element: chipRef.current,\n props: props\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var _a = React.useContext(ChipListSelectionContext), selection = _a[0], dispatchSelection = _a[1];\n var _b = React.useContext(ChipListFocusContext), focus = _b[0], dispatchFocus = _b[1];\n var _c = React.useContext(ChipListDataContext), dispatchData = _c[1];\n var selected = React.useMemo(function () {\n return (props.selected || (Array.isArray(selection)\n ? selection.some(function (i) { return i === props.value; })\n : selection === props.value));\n }, [props.selected, props.value, selection]);\n var focused = React.useMemo(function () { return focus === props.value; }, [props.value, focus]);\n var look = React.useMemo(function () { return props.look || defaultProps.look; }, [props.look]);\n React.useEffect(function () {\n if (focused && chipRef.current) {\n chipRef.current.focus();\n }\n }, [focused]);\n // React.useEffect(() => dispatchItemsContext({type: FOCUS_ACTION.register, payload: target }), []);\n var handleClick = React.useCallback(function (event) {\n dispatchSelection({ type: SELECTION_ACTION.toggle, payload: props.value, event: event });\n if (props.onClick) {\n props.onClick.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onClick, dispatchSelection, props.value]);\n var handleRemove = React.useCallback(function (event) {\n if (!props.removable) {\n return;\n }\n dispatchData({ type: DATA_ACTION.remove, payload: props.value, event: event });\n dispatchFocus({ type: FOCUS_ACTION.reset, payload: props.value, event: event });\n dispatchSelection({ type: SELECTION_ACTION.remove, payload: props.value, event: event });\n if (props.onRemove) {\n props.onRemove.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onRemove, props.removable, dispatchData, dispatchFocus, dispatchSelection]);\n var handleKeyDown = React.useCallback(function (event) {\n switch (event.keyCode) {\n case Keys.left:\n dispatchFocus({ type: FOCUS_ACTION.prev, payload: props.value, event: event });\n break;\n case Keys.right:\n dispatchFocus({ type: FOCUS_ACTION.next, payload: props.value, event: event });\n break;\n case Keys.enter:\n dispatchSelection({ type: SELECTION_ACTION.toggle, payload: props.value, event: event });\n break;\n case Keys.delete:\n handleRemove(event);\n break;\n default:\n break;\n }\n if (props.onKeyDown) {\n props.onKeyDown.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onKeyDown, dispatchFocus, dispatchSelection, handleRemove]);\n var handleFocus = React.useCallback(function (event) {\n dispatchFocus({ payload: props.value, type: FOCUS_ACTION.current, event: event });\n if (props.onFocus) {\n props.onFocus.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onFocus, dispatchFocus]);\n var handleBlur = React.useCallback(function (event) {\n if (props.onBlur) {\n props.onBlur.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [props.onBlur]);\n var mouseProps = useMouse(props, target, { onClick: handleClick });\n return (React.createElement(\"div\", __assign({}, mouseProps, { role: props.role, id: props.value, style: props.style, ref: chipRef, dir: dir, tabIndex: getTabIndex(props.tabIndex, props.disabled, undefined), className: classNames('k-chip', {\n 'k-rtl': dir === 'rtl',\n 'k-state-disabled': props.disabled,\n 'k-state-selected': selected,\n 'k-state-focus': focused,\n 'k-chip-success': props.type === 'success',\n 'k-chip-warning': props.type === 'warning',\n 'k-chip-error': props.type === 'error',\n 'k-chip-info': props.type === 'info',\n 'k-chip-has-icon': props.icon,\n // TODO: remove outlined and filled check once we deprecate them!\n 'k-chip-outline': look === 'outline' || look === 'outlined',\n 'k-chip-solid': look === 'solid' || look === 'filled'\n }, props.className), \"aria-checked\": selected, \"aria-disabled\": props.disabled, \"aria-describedby\": props.ariaDescribedBy, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown }),\n selected && React.createElement(\"span\", { className: 'k-selected-icon-wrapper' },\n React.createElement(\"span\", { className: \"k-selected-icon k-icon \" + (props.selectedIcon || defaultProps.selectedIcon) })),\n props.icon && React.createElement(\"span\", { className: \"k-icon k-chip-icon \" + props.icon }),\n React.createElement(\"span\", { className: 'k-chip-content' }, props.children !== undefined\n ? props.children\n : props.text &&\n React.createElement(\"span\", { \"aria-label\": props.text, className: 'k-chip-label' }, props.text)),\n props.removable &&\n React.createElement(\"span\", { className: 'k-remove-icon', onClick: handleRemove },\n React.createElement(\"span\", { className: \"k-icon \" + props.removeIcon }))));\n});\nvar propTypes = {\n id: PropTypes.string,\n text: PropTypes.string,\n value: PropTypes.any,\n type: PropTypes.oneOf([\n 'none',\n 'success',\n 'warning',\n 'error',\n 'info'\n ]),\n dir: PropTypes.oneOf(['ltr', 'rtl']),\n removable: PropTypes.bool,\n removeIcon: PropTypes.string,\n disabled: PropTypes.bool,\n icon: PropTypes.string,\n selectedIcon: PropTypes.string,\n look: PropTypes.string,\n onRemove: PropTypes.func,\n dataItem: PropTypes.any,\n selected: PropTypes.bool,\n ariaDescribedBy: PropTypes.string\n};\nvar defaultProps = {\n disabled: false,\n removable: false,\n selectedIcon: 'k-i-check',\n look: 'solid',\n removeIcon: 'k-i-close-circle',\n dir: 'ltr'\n};\nChip.displayName = 'KendoReactChip';\n// TODO: delete casting when @types/react is updated!\nChip.propTypes = propTypes;\nChip.defaultProps = defaultProps;\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, getTabIndex } from '@progress/kendo-react-common';\n/**\n * Represents the [KendoReact FloatingActionButtonItem component]({% slug overview_floatingactionbutton %}).\n *\n * @example\n * ```jsx\n *\n * const App = () => {\n * return (\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var FloatingActionButtonItem = React.forwardRef(function (props, ref) {\n var className = props.className, disabled = props.disabled, text = props.text, icon = props.icon, style = props.style, id = props.id, focused = props.focused, tabIndex = props.tabIndex, index = props.index, dataItem = props.dataItem, item = props.item, onDown = props.onDown, onClick = props.onClick, others = __rest(props, [\"className\", \"disabled\", \"text\", \"icon\", \"style\", \"id\", \"focused\", \"tabIndex\", \"index\", \"dataItem\", \"item\", \"onDown\", \"onClick\"]);\n var elementRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n var getImperativeHandle = React.useCallback(function () { return ({\n element: elementRef.current,\n focus: focusElement\n }); }, [focusElement]);\n React.useImperativeHandle(ref, getImperativeHandle);\n var handleClick = React.useCallback(function (event) {\n if (onClick && index !== undefined && !disabled) {\n onClick(event, index);\n }\n }, [onClick, index]);\n var itemClassNames = React.useMemo(function () { return classNames('k-fab-item', {\n 'k-state-focus': focused,\n 'k-state-disabled': disabled\n }, className); }, [className, disabled, focused]);\n var ItemComp = item;\n return (React.createElement(\"li\", __assign({ ref: elementRef, id: id, className: itemClassNames, style: style, role: 'menuitem', tabIndex: getTabIndex(tabIndex, disabled), \"aria-disabled\": disabled, \"aria-label\": (text || '') + \" floatingactionbutton item\", onClick: handleClick, onMouseDown: onDown, onPointerDown: onDown }, others), ItemComp ? React.createElement(ItemComp, { itemIndex: index, item: dataItem }) :\n (React.createElement(React.Fragment, null,\n text && React.createElement(\"span\", { className: \"k-fab-item-text\" }, text),\n icon && React.createElement(\"span\", { className: classNames(\"k-fab-item-icon k-icon k-i-\" + icon) })))));\n});\nFloatingActionButtonItem.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n children: PropTypes.any,\n disabled: PropTypes.bool,\n focused: PropTypes.bool,\n index: PropTypes.number,\n icon: PropTypes.string,\n text: PropTypes.string,\n tabIndex: PropTypes.number,\n customProp: PropTypes.any\n};\nFloatingActionButtonItem.displayName = 'KendoFloatingActionButtonItem';\n","/**\n * @hidden\n */\nexport var DEFAULT_OFFSET = '16px';\n/**\n * @hidden\n */\nexport var toStringValues = function (val) {\n if (typeof val === 'number') {\n return val + 'px';\n }\n return val;\n};\n/**\n * @hidden\n */\nexport var getAnchorAlign = function (fabAlign, rtl) {\n var align = { horizontal: (rtl ? 'right' : 'left'), vertical: 'bottom' };\n if (fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n }\n return align;\n};\n/**\n * @hidden\n */\nexport var getPopupAlign = function (fabAlign, rtl) {\n var align = { horizontal: (rtl ? 'right' : 'left'), vertical: 'top' };\n if (fabAlign.horizontal === 'end') {\n align.horizontal = rtl ? 'left' : 'right';\n }\n return align;\n};\n/**\n * @hidden\n */\nexport var getTextDirectionClass = function (rtl, hAlign) {\n var al = hAlign === 'end' ? 'end' : 'start';\n var directions = {\n rtl: { end: 'k-text-left', start: 'k-text-right' },\n ltr: { start: 'k-text-left', end: 'k-text-right' }\n };\n return directions[rtl][al];\n};\n/**\n * @hidden\n */\nexport var position = function (ref, align, alignOffset, isRtl) {\n var horizontal = align.horizontal;\n var vertical = align.vertical;\n if (ref.current) {\n var xFab = alignOffset && alignOffset.x !== undefined ?\n toStringValues(alignOffset.x) :\n DEFAULT_OFFSET;\n var xCenterFab = alignOffset && alignOffset.x !== undefined ?\n \"calc(50% + \" + toStringValues(alignOffset.x) + \")\" :\n '50%';\n var yFab = alignOffset && alignOffset.y !== undefined ?\n toStringValues(alignOffset.y) :\n DEFAULT_OFFSET;\n var yCenterFab = alignOffset && alignOffset.y !== undefined ?\n \"calc(50% + \" + toStringValues(alignOffset.y) + \")\" :\n '50%';\n ref.current.style.setProperty(horizontalPosition(align, isRtl), horizontal === 'center' ? xCenterFab : xFab);\n ref.current.style.setProperty(verticalPosition(align), vertical === 'middle' ? yCenterFab : yFab);\n if (isRtl) {\n if ((vertical === 'top' || vertical === 'bottom') && horizontal === 'start') {\n ref.current.style.setProperty('left', 'unset');\n }\n if (vertical === 'middle' && horizontal === 'end') {\n ref.current.style.setProperty('right', 'unset');\n }\n if (vertical === 'middle' && horizontal === 'start') {\n ref.current.style.setProperty('left', 'unset');\n }\n }\n }\n};\nvar horizontalPosition = function (align, isRtl) {\n var horizontal = align.horizontal;\n return {\n end: isRtl ? 'left' : 'right',\n center: 'left',\n start: isRtl ? 'right' : 'left'\n }[horizontal || 'end'];\n};\nvar verticalPosition = function (align) {\n return {\n top: 'top',\n middle: 'top',\n bottom: 'bottom'\n }[align.vertical || 'bottom'];\n};\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { classNames, guid, useDir, dispatchEvent, Keys, getTabIndex } from '@progress/kendo-react-common';\nimport { FloatingActionButtonItem } from './FloatingActionButtonItem';\nimport { packageMetadata } from '../package-metadata';\nimport { position, getAnchorAlign, getPopupAlign, getTextDirectionClass } from './utils';\nimport { Popup } from '@progress/kendo-react-popup';\n/**\n * Represents the [KendoReact FloatingActionButton component]({% slug overview_floatingactionbutton %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var FloatingActionButton = React.forwardRef(function (props, ref) {\n validatePackage(packageMetadata);\n var _a = props.align, align = _a === void 0 ? defaultProps.align : _a, alignOffset = props.alignOffset, className = props.className, disabled = props.disabled, icon = props.icon, iconClass = props.iconClass, id = props.id, items = props.items, item = props.item, text = props.text, _b = props.positionMode, positionMode = _b === void 0 ? defaultProps.positionMode : _b, _c = props.shape, shape = _c === void 0 ? defaultProps.shape : _c, _d = props.size, size = _d === void 0 ? defaultProps.size : _d, style = props.style, _e = props.themeColor, themeColor = _e === void 0 ? defaultProps.themeColor : _e, tabIndex = props.tabIndex, accessKey = props.accessKey, _f = props.popupSettings, popupSettings = _f === void 0 ? {} : _f, onClick = props.onClick, onItemClick = props.onItemClick, onFocus = props.onFocus, onBlur = props.onBlur, onKeyDown = props.onKeyDown, onOpen = props.onOpen, onClose = props.onClose, others = __rest(props, [\"align\", \"alignOffset\", \"className\", \"disabled\", \"icon\", \"iconClass\", \"id\", \"items\", \"item\", \"text\", \"positionMode\", \"shape\", \"size\", \"style\", \"themeColor\", \"tabIndex\", \"accessKey\", \"popupSettings\", \"onClick\", \"onItemClick\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"onOpen\", \"onClose\"]);\n var target = React.useRef(null);\n var elementRef = React.useRef(null);\n var listRef = React.useRef(null);\n var popupRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n var getImperativeHandle = React.useCallback(function () { return ({\n element: elementRef.current,\n focus: focusElement\n }); }, [focusElement]);\n React.useImperativeHandle(target, getImperativeHandle);\n React.useImperativeHandle(ref, function () { return target.current; });\n var _g = React.useState(false), open = _g[0], setOpen = _g[1];\n var _h = React.useState(false), focused = _h[0], setFocused = _h[1];\n var _j = React.useState(-1), focusedIndex = _j[0], setFocusedIndex = _j[1];\n var buttonId = React.useMemo(function () { return guid(); }, []);\n var dir = useDir(elementRef, props.dir);\n var isRtl = dir === 'rtl';\n var listId = React.useMemo(function () { return guid(); }, []);\n React.useEffect(function () {\n position(elementRef, align, alignOffset, isRtl);\n }, [elementRef, align, alignOffset, isRtl]);\n React.useEffect(function () {\n if (focused && elementRef && elementRef.current) {\n // firefox in mac does not focus on mouse-down, next line fixes this\n elementRef.current.focus();\n }\n }, [focused, elementRef]);\n var dispatchPopupEvent = React.useCallback(function (dispatchedEvent, isOpen) {\n if (!items) {\n return;\n }\n dispatchEvent(isOpen ? onOpen : onClose, dispatchedEvent, getImperativeHandle(), undefined);\n }, [onOpen, onClose, items]);\n var handleClick = React.useCallback(function (event) {\n if (!event.target || disabled) {\n return;\n }\n if (!items && onClick) {\n dispatchEvent(onClick, event, getImperativeHandle(), undefined);\n }\n else {\n setOpen(!open);\n setFocused(true);\n setFocusedIndex(!open ? 0 : -1);\n dispatchPopupEvent(event, !open);\n }\n }, [setOpen, setFocused, setFocusedIndex, onClick, dispatchPopupEvent,\n open, items, disabled]);\n var handleFocus = React.useCallback(function (event) {\n setFocused(true);\n setFocusedIndex(open ? 0 : -1);\n if (onFocus) {\n dispatchEvent(onFocus, event, getImperativeHandle(), undefined);\n }\n }, [onFocus, setFocused, setFocusedIndex]);\n var handleBlur = React.useCallback(function (event) {\n setFocused(false);\n setOpen(false);\n setFocusedIndex(-1);\n dispatchEvent(onBlur, event, getImperativeHandle(), undefined);\n var fireCloseEvent = open;\n if (fireCloseEvent) {\n dispatchPopupEvent(event, false);\n }\n }, [onBlur, setFocused, setOpen, setFocusedIndex, dispatchPopupEvent]);\n var handleMouseDown = React.useCallback(function (event) {\n event.preventDefault();\n }, []);\n var dispatchItemClickEvent = React.useCallback(function (dispatchedEvent, index) {\n if (!items) {\n return;\n }\n if (!items[index].disabled) {\n dispatchEvent(onItemClick, dispatchedEvent, getImperativeHandle(), {\n itemProps: items[index],\n itemIndex: index\n });\n }\n }, [onItemClick]);\n var handleItemClick = React.useCallback(function (event, clickedItemIndex) {\n if (!event.target || !items) {\n return;\n }\n setFocusedIndex(clickedItemIndex);\n setOpen(false);\n dispatchItemClickEvent(event, clickedItemIndex);\n dispatchPopupEvent(event, false);\n }, [setFocusedIndex, setOpen, dispatchItemClickEvent, dispatchPopupEvent]);\n var handleItemDown = React.useCallback(function (event) {\n if (document.activeElement === elementRef.current) {\n event.preventDefault();\n }\n }, [elementRef, document.activeElement]);\n var handleKeyDown = React.useCallback(function (event) {\n var currIndex = focusedIndex;\n var maxNavIndex = items ? items.length - 1 : -1;\n var isAtBottom = align.vertical === 'bottom';\n switch (event.keyCode) {\n case Keys.enter:\n case Keys.space:\n if (currIndex >= 0) {\n dispatchItemClickEvent(event, currIndex);\n }\n event.preventDefault();\n setOpen(!open);\n setFocusedIndex(!open ? 0 : -1);\n break;\n case Keys.esc:\n event.preventDefault();\n setOpen(false);\n setFocusedIndex(-1);\n break;\n case Keys.home:\n event.preventDefault();\n setFocusedIndex(0);\n break;\n case Keys.end:\n event.preventDefault();\n setFocusedIndex(maxNavIndex);\n break;\n case Keys.down:\n case Keys.right:\n event.preventDefault();\n if (currIndex < maxNavIndex && !isAtBottom) {\n setFocusedIndex(currIndex + 1);\n }\n if (currIndex > 0 && isAtBottom) {\n setFocusedIndex(currIndex - 1);\n }\n break;\n case Keys.up:\n case Keys.left:\n event.preventDefault();\n if (currIndex > 0 && !isAtBottom) {\n setFocusedIndex(currIndex - 1);\n }\n if (currIndex < maxNavIndex && isAtBottom) {\n setFocusedIndex(currIndex + 1);\n }\n break;\n default:\n break;\n }\n dispatchEvent(onKeyDown, event, getImperativeHandle(), undefined);\n }, [onKeyDown, focusedIndex, setFocusedIndex, isRtl, setOpen]);\n var buttonClassNames = React.useMemo(function () { return classNames('k-fab', \"k-fab-\" + themeColor, \"k-fab-\" + shape, {\n 'k-fab-sm': size === 'small',\n 'k-fab-md': size === 'medium',\n 'k-fab-lg': size === 'large',\n 'k-state-disabled': disabled,\n 'k-pos-absolute': positionMode === 'absolute',\n 'k-pos-fixed': positionMode === 'fixed',\n 'k-state-focus': focused\n }, \"k-\" + align.vertical + \"-\" + align.horizontal, className); }, [themeColor, size, shape, disabled, positionMode, align, focused, className]);\n var fabItems = (items && (items.map(function (element, index) {\n return (React.createElement(FloatingActionButtonItem, __assign({}, element, { key: index, index: index, id: listId + \"-\" + index, disabled: disabled || element.disabled, focused: focusedIndex === index, dataItem: element, item: item, className: classNames(element.className, getTextDirectionClass(dir || 'ltr', align.horizontal)), onClick: handleItemClick, onDown: handleItemDown })));\n })));\n var isIconFab = icon && !text;\n var fabWidth = elementRef.current ? elementRef.current.offsetWidth : 0;\n var iconWidth = 32;\n var spacing = (fabWidth / 2) - (iconWidth / 2);\n return (React.createElement(React.Fragment, null,\n React.createElement(\"button\", __assign({ ref: elementRef, id: id || buttonId, role: items ? 'menubutton' : 'button', type: 'button', \"aria-disabled\": disabled, \"aria-expanded\": items ? open : undefined, \"aria-haspopup\": items ? true : false, \"aria-label\": (text || '') + \" floatingactionbutton\", \"aria-owns\": items ? listId : undefined, \"aria-activedescendant\": focusedIndex >= 0 && items ? listId + \"-\" + focusedIndex : undefined, tabIndex: getTabIndex(tabIndex, disabled), accessKey: accessKey, dir: dir, disabled: disabled, className: buttonClassNames, style: style, onClick: handleClick, onMouseDown: handleMouseDown, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: handleKeyDown }, others),\n icon ?\n React.createElement(\"span\", { role: \"presentation\", className: classNames(\"k-fab-icon k-icon k-i-\" + icon) }) :\n iconClass ?\n React.createElement(\"span\", { role: \"presentation\", className: iconClass }) :\n null,\n text && React.createElement(\"span\", { className: \"k-fab-text\" }, text)),\n React.createElement(Popup, { ref: popupRef, anchor: elementRef.current, show: open, animate: popupSettings.animate, popupClass: classNames('k-popup-transparent k-fab-popup', popupSettings.popupClass), anchorAlign: popupSettings.anchorAlign || getAnchorAlign(align, isRtl), popupAlign: popupSettings.popupAlign || getPopupAlign(align, isRtl), style: { boxShadow: 'none' } },\n React.createElement(\"ul\", { ref: listRef, role: 'menu', \"aria-labelledby\": id, id: listId, className: classNames('k-fab-items', {\n 'k-fab-items-bottom': align.vertical !== 'bottom',\n 'k-fab-items-top': align.vertical === 'bottom'\n }), style: {\n paddingLeft: isIconFab ? spacing : undefined,\n paddingRight: isIconFab ? spacing : undefined\n } }, fabItems))));\n});\nFloatingActionButton.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n id: PropTypes.string,\n dir: PropTypes.string,\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n disabled: PropTypes.bool,\n icon: PropTypes.string,\n iconClass: PropTypes.string,\n text: PropTypes.string,\n alignOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n }),\n align: PropTypes.shape({\n vertical: PropTypes.oneOf(['top', 'middle', 'bottom']),\n horizontal: PropTypes.oneOf(['start', 'center', 'end'])\n }),\n positionMode: PropTypes.oneOf(['absolute', 'fixed']),\n shape: PropTypes.oneOf(['rectangle', 'rounded', 'pill']),\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n themeColor: PropTypes.oneOf([\n 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'warning',\n 'error', 'dark', 'light', 'inverse'\n ])\n};\nvar defaultProps = {\n align: { vertical: 'bottom', horizontal: 'end' },\n shape: 'pill',\n size: 'medium',\n themeColor: 'primary',\n positionMode: 'fixed'\n};\nFloatingActionButton.displayName = 'KendoFloatingActionButton';\n","/**\n * @hidden\n */\nvar getDocument = function () { return typeof document !== 'undefined' ? document : {}; };\n/**\n * @hidden\n */\nvar BrowserSupportService = /** @class */ (function () {\n function BrowserSupportService() {\n }\n Object.defineProperty(BrowserSupportService.prototype, \"scrollbarWidth\", {\n get: function () {\n var document = getDocument();\n if (!this.scrollbar && document && document.createElement) {\n var div = document.createElement('div');\n div.style.cssText = 'overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block';\n div.innerHTML = ' ';\n document.body.appendChild(div);\n this.scrollbar = div.offsetWidth - div.scrollWidth;\n document.body.removeChild(div);\n }\n return this.scrollbar;\n },\n enumerable: true,\n configurable: true\n });\n return BrowserSupportService;\n}());\nexport { BrowserSupportService };\n","/**\n * @hidden\n */\nexport var canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\n","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg)\n ? classNames.apply(void 0, arg) : typeof arg === 'object'\n ? Object\n .keys(arg)\n .map(function (key, idx) { return arg[idx] || (arg[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ')\n : arg;\n })\n .filter(function (arg) { return !!arg; })\n .join(' ');\n};\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var cloneDate = function (date) { return date ? new Date(date.getTime()) : null; };\n/**\n * @hidden\n */\nexport function clone(obj) {\n var result = {};\n cloneObject(obj, result);\n return result;\n}\n/**\n * @hidden\n */\nexport function cloneObject(obj, result) {\n for (var field in obj) {\n if (obj.hasOwnProperty(field)) {\n var value = obj[field];\n result[field] = cloneValue(value, result[field]);\n }\n }\n}\n/**\n * @hidden\n */\nexport function cloneValue(value, nextValue) {\n if (Array.isArray(value)) {\n return cloneArray(value);\n }\n else if (value instanceof Date) {\n return cloneDate(value);\n }\n else if (React.isValidElement(value)) {\n return React.cloneElement(value, value.props);\n }\n else if (value && typeof value === 'object') {\n var newNextValue = nextValue || {};\n cloneObject(value, newNextValue);\n return newNextValue;\n }\n else {\n return value;\n }\n}\n/**\n * @hidden\n */\nexport function cloneArray(array) {\n return array.map(function (value) { return cloneValue(value, undefined); });\n}\n","var proxy = function (a, b) { return function (e) { return b(a(e)); }; };\n\nvar bind = function (el, event, callback) { return el.addEventListener && el.addEventListener(event, callback); };\n\nvar unbind = function (el, event, callback) { return el && el.removeEventListener && el.removeEventListener(event, callback); };\n\nvar noop = function () { /* empty */ };\n\nvar preventDefault = function (e) { return e.preventDefault(); };\n\nvar touchRegExp = /touch/;\n\n// 300ms is the usual mouse interval;\n// // However, an underpowered mobile device under a heavy load may queue mouse events for a longer period.\nvar IGNORE_MOUSE_TIMEOUT = 2000;\n\nfunction normalizeEvent(e) {\n if (e.type.match(touchRegExp)) {\n return {\n pageX: e.changedTouches[0].pageX,\n pageY: e.changedTouches[0].pageY,\n clientX: e.changedTouches[0].clientX,\n clientY: e.changedTouches[0].clientY,\n type: e.type,\n originalEvent: e,\n isTouch: true\n };\n }\n\n return {\n pageX: e.pageX,\n pageY: e.pageY,\n clientX: e.clientX,\n clientY: e.clientY,\n offsetX: e.offsetX,\n offsetY: e.offsetY,\n type: e.type,\n ctrlKey: e.ctrlKey,\n shiftKey: e.shiftKey,\n altKey: e.altKey,\n originalEvent: e\n };\n}\n\nexport var Draggable = function Draggable(ref) {\n var this$1 = this;\n var press = ref.press; if ( press === void 0 ) press = noop;\n var drag = ref.drag; if ( drag === void 0 ) drag = noop;\n var release = ref.release; if ( release === void 0 ) release = noop;\n var mouseOnly = ref.mouseOnly; if ( mouseOnly === void 0 ) mouseOnly = false;\n\n this._pressHandler = proxy(normalizeEvent, press);\n this._dragHandler = proxy(normalizeEvent, drag);\n this._releaseHandler = proxy(normalizeEvent, release);\n this._ignoreMouse = false;\n this._mouseOnly = mouseOnly;\n\n this._touchstart = function (e) {\n if (e.touches.length === 1) {\n this$1._pressHandler(e);\n }\n };\n\n this._touchmove = function (e) {\n if (e.touches.length === 1) {\n this$1._dragHandler(e);\n }\n };\n\n this._touchend = function (e) {\n // the last finger has been lifted, and the user is not doing gesture.\n // there might be a better way to handle this.\n if (e.touches.length === 0 && e.changedTouches.length === 1) {\n this$1._releaseHandler(e);\n this$1._ignoreMouse = true;\n setTimeout(this$1._restoreMouse, IGNORE_MOUSE_TIMEOUT);\n }\n };\n\n this._restoreMouse = function () {\n this$1._ignoreMouse = false;\n };\n\n this._mousedown = function (e) {\n var which = e.which;\n\n if ((which && which > 1) || this$1._ignoreMouse) {\n return;\n }\n\n bind(this$1.document, \"mousemove\", this$1._mousemove);\n bind(this$1.document, \"mouseup\", this$1._mouseup);\n this$1._pressHandler(e);\n };\n\n this._mousemove = function (e) {\n this$1._dragHandler(e);\n };\n\n this._mouseup = function (e) {\n unbind(this$1.document, \"mousemove\", this$1._mousemove);\n unbind(this$1.document, \"mouseup\", this$1._mouseup);\n this$1._releaseHandler(e);\n };\n\n this._pointerdown = function (e) {\n if (e.isPrimary && e.button === 0) {\n bind(this$1.document, \"pointermove\", this$1._pointermove);\n bind(this$1.document, \"pointerup\", this$1._pointerup);\n bind(this$1.document, \"pointercancel\", this$1._pointerup);\n bind(this$1.document, \"contextmenu\", preventDefault);\n\n this$1._pressHandler(e);\n }\n };\n\n this._pointermove = function (e) {\n if (e.isPrimary) {\n this$1._dragHandler(e);\n }\n };\n\n this._pointerup = function (e) {\n if (e.isPrimary) {\n unbind(this$1.document, \"pointermove\", this$1._pointermove);\n unbind(this$1.document, \"pointerup\", this$1._pointerup);\n unbind(this$1.document, \"pointercancel\", this$1._pointerup);\n unbind(this$1.document, \"contextmenu\", preventDefault);\n\n this$1._releaseHandler(e);\n }\n };\n};\n\nvar prototypeAccessors = { document: { configurable: true } };\n\nDraggable.supportPointerEvent = function supportPointerEvent () {\n return (typeof window !== 'undefined') && window.PointerEvent;\n};\n\nprototypeAccessors.document.get = function () {\n return this._element\n ? this._element.ownerDocument\n : document;\n};\n\nDraggable.prototype.bindTo = function bindTo (element) {\n if (element === this._element) {\n return;\n }\n\n if (this._element) {\n this._unbindFromCurrent();\n }\n\n this._element = element;\n this._bindToCurrent();\n};\n\nDraggable.prototype._bindToCurrent = function _bindToCurrent () {\n var element = this._element;\n\n if (this._usePointers()) {\n bind(element, \"pointerdown\", this._pointerdown);\n return;\n }\n\n bind(element, \"mousedown\", this._mousedown);\n\n if (!this._mouseOnly) {\n bind(element, \"touchstart\", this._touchstart);\n bind(element, \"touchmove\", this._touchmove);\n bind(element, \"touchend\", this._touchend);\n }\n};\n\nDraggable.prototype._unbindFromCurrent = function _unbindFromCurrent () {\n var element = this._element;\n\n if (this._usePointers()) {\n unbind(element, \"pointerdown\", this._pointerdown);\n unbind(this.document, \"pointermove\", this._pointermove);\n unbind(this.document, \"pointerup\", this._pointerup);\n unbind(this.document, \"contextmenu\", preventDefault);\n unbind(this.document, \"pointercancel\", this._pointerup);\n return;\n }\n\n unbind(element, \"mousedown\", this._mousedown);\n\n if (!this._mouseOnly) {\n unbind(element, \"touchstart\", this._touchstart);\n unbind(element, \"touchmove\", this._touchmove);\n unbind(element, \"touchend\", this._touchend);\n }\n};\n\nDraggable.prototype._usePointers = function _usePointers () {\n return !this._mouseOnly && Draggable.supportPointerEvent();\n};\n\nDraggable.prototype.update = function update (ref) {\n var press = ref.press; if ( press === void 0 ) press = noop;\n var drag = ref.drag; if ( drag === void 0 ) drag = noop;\n var release = ref.release; if ( release === void 0 ) release = noop;\n var mouseOnly = ref.mouseOnly; if ( mouseOnly === void 0 ) mouseOnly = false;\n\n this._pressHandler = proxy(normalizeEvent, press);\n this._dragHandler = proxy(normalizeEvent, drag);\n this._releaseHandler = proxy(normalizeEvent, release);\n this._mouseOnly = mouseOnly;\n};\n\nDraggable.prototype.destroy = function destroy () {\n this._unbindFromCurrent();\n this._element = null;\n};\n\nObject.defineProperties( Draggable.prototype, prototypeAccessors );\n\n// Re-export as \"default\" field to address a bug\n// where the ES Module is imported by CommonJS code.\n//\n// See https://github.com/telerik/kendo-angular/issues/1314\nDraggable.default = Draggable;\n\n// Rollup won't output exports['default'] otherwise\nexport default Draggable;\n\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport KendoDraggable from '@telerik/kendo-draggable';\n/**\n * Represents the KendoReact Draggable component.\n */\nvar Draggable = /** @class */ (function (_super) {\n __extends(Draggable, _super);\n function Draggable() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.element = null;\n _this.draggable = new KendoDraggable({\n press: function (event) {\n if (_this.element && _this.props.onPress) {\n _this.props.onPress.call(undefined, {\n target: _this,\n event: event,\n element: _this.element\n });\n }\n },\n drag: function (event) {\n if (_this.element && _this.props.onDrag) {\n _this.props.onDrag.call(undefined, {\n target: _this,\n event: event,\n element: _this.element\n });\n }\n },\n release: function (event) {\n if (_this.element && _this.props.onRelease) {\n _this.props.onRelease.call(undefined, {\n target: _this,\n event: event\n });\n }\n }\n });\n _this.childRef = function (element) {\n var childRef = _this.props.childRef;\n _this.element = element;\n if (childRef && typeof childRef === 'function') {\n childRef(element);\n }\n };\n return _this;\n }\n Draggable.prototype.componentDidMount = function () {\n if (this.element) {\n this.draggable.bindTo(this.element);\n }\n };\n Draggable.prototype.componentWillUnmount = function () {\n this.draggable.destroy();\n };\n Draggable.prototype.render = function () {\n return (React.cloneElement(React.Children.only(this.props.children), { ref: this.childRef }));\n };\n Draggable.propTypes = {\n children: PropTypes.element.isRequired\n };\n return Draggable;\n}(React.Component));\nexport { Draggable };\n","/**\n * @hidden\n */\nexport var focusFirstFocusableChild = function (target) {\n if (target) {\n if ((target instanceof HTMLInputElement || target.tabIndex !== -1) && target.focus) {\n target.focus();\n return;\n }\n var element = target.querySelector('input, [tabindex]:not([tabindex=\"-1\"])');\n if (element && element.focus) {\n element.focus();\n }\n }\n};\n","/* eslint-disable radix */\n/**\n * @hidden\n */\nvar DISABLED_TABINDEX = -1;\n/**\n * @hidden\n */\nvar DEFAULT_TABINDEX = 0;\n/**\n * @hidden\n */\nexport var getTabIndex = function (tabIndex, disabled, useDefaultTabIndexWhenDisabled) {\n var parsedTabIndex = typeof tabIndex === 'string' ? parseInt(tabIndex, undefined) : tabIndex;\n if (parsedTabIndex === NaN) {\n return undefined;\n }\n return parsedTabIndex !== undefined\n ? parsedTabIndex\n : disabled ?\n (useDefaultTabIndexWhenDisabled ? undefined : DISABLED_TABINDEX)\n : DEFAULT_TABINDEX;\n};\n","/**\n * @hidden\n */\nexport var FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\n","import { FIELD_REGEX } from './constants';\n/**\n * @hidden\n */\nexport function fieldList(field) {\n var fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n return fields;\n}\n","import { fieldList } from './fieldList';\nvar getterCache = {};\ngetterCache.undefined = function () { return undefined; };\n/**\n * Can be used for getting value from object using field path. For example `users[index].name`.\n *\n * @example\n * ```jsx-no-run\n * const values = {users:[{lastName: 'Doe'}]};\n * const firstUserLastName = getter('user[0].lastName');\n *\n * console.log(firstUserLastName(values))\n *\n * // result: 'Doe'\n * ```\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n var fields = fieldList(field);\n getterCache[field] = function (obj) {\n var result = obj;\n for (var idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","/* eslint-disable no-bitwise */\n/**\n * @hidden\n */\nexport var guid = function () {\n var id = '';\n var i;\n var random;\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += '-';\n }\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16);\n }\n return id;\n};\n","/**\n * @hidden\n */\nexport var Keys = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n esc: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46\n};\n","/**\n * @hidden\n */\nexport var noop = function () { };\n","import { BrowserSupportService } from './browser-support.service';\nimport { canUseDOM } from './canUseDOM';\n/**\n * @hidden\n */\nexport var getScrollbarWidth = function () {\n if (!canUseDOM || !document.body) {\n return false;\n }\n var scrollbarWidth = new BrowserSupportService().scrollbarWidth;\n return scrollbarWidth;\n};\n/**\n * @hidden\n */\nexport var setScrollbarWidth = function () {\n if (!canUseDOM || !document.body) {\n return false;\n }\n var scrollbarWidth = new BrowserSupportService().scrollbarWidth;\n document.body.style.setProperty('--kendo-scrollbar-width', scrollbarWidth + \"px\");\n};\n","import { fieldList } from './fieldList';\nvar setterCache = {};\nsetterCache.undefined = function (obj) { return obj; };\nvar defaultValue = function (nextField, options) {\n return options && options.arrays && !isNaN(Number(nextField)) ? [] : {};\n};\n/**\n * Can be used for setting value to object using field path. For example `users[index].name`.\n *\n * @example\n * ```jsx-no-run\n * const values = {users:[{lastName: 'Doe'}]};\n * const firstUserFirstName = setter('user[0].firstName');\n *\n * firstUserFirstName(values, 'John');\n *\n * console.log(values)\n *\n * // result: {users:[{firstName: 'John', lastName: 'Doe'}]}\n * ```\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n var fields = fieldList(field);\n setterCache[field] = function (obj, value, options) {\n var root = obj;\n var depth = fields.length - 1;\n for (var idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || defaultValue(fields[idx + 1], options);\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","var __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};\n// Gets and sets the children. Returns the children or the re-created item with the new children.\nfunction children(item, subItemsField, subItems) {\n var _a;\n if (subItems) {\n return __assign({}, item, (_a = {}, _a[subItemsField] = subItems.length ? subItems.slice() : undefined, _a));\n }\n else {\n return item && item[subItemsField] ? item[subItemsField].slice() : [];\n }\n}\nfunction mapItem(dataItem, subItemsField, callbackfn) {\n if (dataItem[subItemsField]) {\n var subItems = children(dataItem, subItemsField).map(function (child) { return mapItem(child, subItemsField, callbackfn); });\n return callbackfn(children(dataItem, subItemsField, subItems));\n }\n return callbackfn(dataItem);\n}\n/**\n * Creates a new array with the results of calling the provided callback function\n * on every element in the provided data tree.\n *\n * @param {any[]} tree - The data tree.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @param {(value: any) => any} callback - The callback function.\n * @returns {any[]} - The new data tree.\n */\nexport var mapTree = function (tree, subItemsField, callback) {\n return tree.map(function (item) { return mapItem(item, subItemsField, callback); }).slice();\n};\n/**\n * Creates a new array with the results of calling the provided callback function\n * on the element which match the `level` in the provided data tree.\n *\n * @param {any[]} tree - The data tree.\n * @param {number[]} level - An array of indexes of each parent and current item in the data tree.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @param {(value: any) => any} callback - The callback function.\n * @returns {any[]} - The new data tree.\n */\nexport var mapTreeItem = function (tree, level, subItemsField, callback) {\n var curData = tree;\n var parentNodes = [];\n for (var i = 0; i < level.length; i++) {\n curData = curData[level[i]];\n curData = Array.isArray(curData) ? curData : curData[subItemsField];\n parentNodes.push(curData);\n }\n var parent = parentNodes.length > 1 ? parentNodes[parentNodes.length - 2] : tree;\n var newItemIndex = level[level.length - 1];\n var newItem = callback(parent[newItemIndex]);\n parent.splice(newItemIndex, 1, newItem);\n};\n/**\n * Similar to the `Object.assign` function. Additionally, creates a new array for the subitems.\n *\n * @param {object} item - The source data item.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @param {object} propsToExtend - The props with which the source data item will be extended.\n * @returns {object} - The target data item.\n */\nexport var extendDataItem = function (item, subItemsField, propsToExtend) {\n var _a;\n return Object.assign({}, item, item[subItemsField] ? (_a = {}, _a[subItemsField] = item[subItemsField].slice(), _a) : {}, propsToExtend || {});\n};\n/**\n * Returns the data item path in the tree based on the level parameter.\n *\n * @param {any[]} tree - The data tree.\n * @param {number[]} level - The level of the target tree item.\n * @param {string} subItemsField - The field which points to the subitems collection of each data item.\n * @returns {any[]} - The path of the data item.\n */\nexport var getItemPath = function (tree, level, subItemsField) {\n var nodes = [];\n var itemLevel = level.slice();\n if (itemLevel.length) {\n var element = tree[itemLevel.shift() || 0];\n nodes.push(element);\n while (itemLevel.length && subItemsField) {\n element = element[subItemsField][itemLevel.shift() || 0];\n nodes.push(element);\n }\n }\n return nodes;\n};\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","import { canUseDOM } from './canUseDOM';\n/** @hidden */\nexport var hasRelativeStackingContext = function (elementSource) {\n if (!canUseDOM) {\n return false;\n }\n // Component need to pass element to make sure document owner is correct.\n // This however might be performance hit if checked for example on each drag event.\n var currentDocument = elementSource ? elementSource.ownerDocument : document;\n if (!currentDocument || !currentDocument.body) {\n return false;\n }\n var top = 10;\n var parent = currentDocument.createElement('div');\n parent.style.transform = 'matrix(10, 0, 0, 10, 0, 0)';\n parent.innerHTML = \"
child
\";\n currentDocument.body.appendChild(parent);\n var isDifferent = parent.children[0].getBoundingClientRect().top !== top;\n currentDocument.body.removeChild(parent);\n return isDifferent;\n};\n","/**\n * @hidden\n * Dispatches a new event based on an event that was already internally dispatched to KendoReact users.\n *\n * @param eventHandler - The public event handler that is assigned by the user.\n * When undefined, the method is not an option.\n * @param dispatchedEvent - The event that was already dispatched internally.\n * @param target - The target component of the new event.\n * @param eventData - The additional data that will be passed through the new event.\n * When the new event has no additional data\n * other than the `BaseEvent` arguments, pass `undefined`.\n */\nexport function dispatchEvent(eventHandler, dispatchedEvent, target, eventData) {\n if (eventHandler) {\n var eventBaseData = {\n syntheticEvent: dispatchedEvent,\n nativeEvent: dispatchedEvent.nativeEvent,\n target: target\n };\n eventHandler.call(undefined, Object.assign(eventBaseData, eventData));\n }\n}\n","var __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};\nimport { useAsyncFocusBlur } from '../hooks/useAsyncFocusBlur';\n/**\n * An utility High-order Component for asynchronous focus/blur handling.\n *\n * By default, the `onFocus` and `onBlur` callbacks are called every time a child components receives/loses focus.\n * Use this utility HOC for scenarios where you need to know if the parent has received focus for the first time, or completely lost focus.\n *\n * @returns\n */\nexport var AsyncFocusBlur = function (_a) {\n var children = _a.children, onFocus = _a.onFocus, onBlur = _a.onBlur, onSyncFocus = _a.onSyncFocus, onSyncBlur = _a.onSyncBlur;\n var args = useAsyncFocusBlur({ onFocus: onFocus, onBlur: onBlur, onSyncFocus: onSyncFocus, onSyncBlur: onSyncBlur });\n return children.call(undefined, __assign({}, args));\n};\n","import * as React from 'react';\n/**\n * An utility function for asynchronous focus/blur handling.\n *\n * By default, the `onFocus` and `onBlur` callbacks are called every time a child components receives/loses focus.\n * Use this utility hook for scenarios where you need to know if the parent has received focus for the first time, or completely lost focus.\n *\n * @returns\n */\nexport function useAsyncFocusBlur(_a) {\n var onFocus = _a.onFocus, onBlur = _a.onBlur, onSyncFocus = _a.onSyncFocus, onSyncBlur = _a.onSyncBlur;\n var focused = React.useRef(false);\n var tick = React.useRef(0);\n var nextTick = React.useCallback(function (f) {\n clearTimeout(tick.current);\n tick.current = window.setTimeout(function () { return f(); });\n }, [tick]);\n var handleFocus = React.useCallback(function () {\n var event = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n event[_i] = arguments[_i];\n }\n clearTimeout(tick.current);\n if (onSyncFocus) {\n onSyncFocus.call.apply(onSyncFocus, [undefined].concat(event));\n }\n if (focused.current) {\n return;\n }\n ;\n focused.current = true;\n if (onFocus) {\n onFocus.call.apply(onFocus, [undefined].concat(event));\n }\n }, [focused, onFocus, onSyncFocus]);\n var handleBlur = React.useCallback(function () {\n var event = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n event[_i] = arguments[_i];\n }\n if (onSyncBlur) {\n onSyncBlur.call.apply(onSyncBlur, [undefined].concat(event));\n }\n nextTick(function () {\n if (!focused.current) {\n return;\n }\n if (onBlur) {\n focused.current = false;\n onBlur.call.apply(onBlur, [undefined].concat(event));\n }\n });\n }, [focused, nextTick, onBlur, onSyncBlur]);\n React.useEffect(function () {\n return function () {\n clearTimeout(tick.current);\n };\n }, []);\n return {\n onFocus: handleFocus,\n onBlur: handleBlur\n };\n}\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport function useDir(elementRef, initialDir, args) {\n // Dir prop is read only on initial rendering due to specifics of getComputedStyles - see below\n var _a = React.useState(initialDir), dir = _a[0], setDir = _a[1];\n React.useEffect(function () {\n if (!dir && window && elementRef.current) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(elementRef.current).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n setDir(rtlCandidate);\n }\n }\n }, args);\n return dir;\n}\n","import * as React from 'react';\nimport Draggable from '@telerik/kendo-draggable';\n/** @hidden */\nexport function useDraggable(ref, _a) {\n var onPress = _a.onPress, onDrag = _a.onDrag, onRelease = _a.onRelease;\n var draggable = React.useMemo(function () { return new Draggable({\n press: onPress,\n drag: onDrag,\n release: onRelease\n }); }, []);\n var initDraggable = function () {\n var element = ref.current;\n if (!element) {\n return;\n }\n draggable.bindTo(element);\n return function () { draggable.destroy(); };\n };\n var updateDraggable = function () {\n draggable.update({\n press: onPress,\n drag: onDrag,\n release: onRelease\n });\n };\n React.useEffect(initDraggable, []);\n React.useEffect(updateDraggable, [onPress, onDrag, onRelease]);\n}\n","import * as React from 'react';\n// Same as 'useDir'. Export to avoid breaking change.\n// 'useRtl' is incorrect naming, since applies that the returned value is `true` or `false`.\n// but instead, it is returning `ltr` or `rtl`.\n/**\n * @hidden\n */\nexport function useRtl(elementRef, initialDir, args) {\n // Dir prop is read only on initial rendering due to specifics of getComputedStyles - see below\n var _a = React.useState(initialDir), dir = _a[0], setDir = _a[1];\n React.useEffect(function () {\n if (!dir && window && elementRef.current) {\n // Note: getComputedStyle forces reflow\n var rtlCandidate = window.getComputedStyle(elementRef.current).direction;\n if (rtlCandidate) {\n // rerender is needed as DOM is read after first render\n setDir(rtlCandidate);\n }\n }\n }, args);\n return dir;\n}\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var useMouse = function (props, target, extend) {\n if (extend === void 0) { extend = {}; }\n var handleMouseDown = React.useCallback(function (event) {\n if (extend.onMouseDown) {\n extend.onMouseDown.call(undefined, event);\n }\n if (props.onMouseDown) {\n props.onMouseDown.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseDown, props.onMouseDown, target]);\n var handleMouseUp = React.useCallback(function (event) {\n if (extend.onMouseUp) {\n extend.onMouseUp.call(undefined, event);\n }\n if (props.onMouseUp) {\n props.onMouseUp.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseUp, props.onMouseUp, target]);\n var handleClick = React.useCallback(function (event) {\n if (extend.onClick) {\n extend.onClick.call(undefined, event);\n }\n if (props.onClick) {\n props.onClick.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onClick, props.onClick, target]);\n var handleDoubleClick = React.useCallback(function (event) {\n if (extend.onDoubleClick) {\n extend.onDoubleClick.call(undefined, event);\n }\n if (props.onDoubleClick) {\n props.onDoubleClick.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onDoubleClick, props.onDoubleClick, target]);\n var handleMouseEnter = React.useCallback(function (event) {\n if (extend.onMouseEnter) {\n extend.onMouseEnter.call(undefined, event);\n }\n if (props.onMouseEnter) {\n props.onMouseEnter.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseEnter, props.onMouseEnter, target]);\n var handleMouseLeave = React.useCallback(function (event) {\n if (extend.onMouseLeave) {\n extend.onMouseLeave.call(undefined, event);\n }\n if (props.onMouseLeave) {\n props.onMouseLeave.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseLeave, props.onMouseLeave, target]);\n var handelMouseMove = React.useCallback(function (event) {\n if (extend.onMouseMove) {\n extend.onMouseMove.call(undefined, event);\n }\n if (props.onMouseMove) {\n props.onMouseMove.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseMove, props.onMouseMove, target]);\n var handleMouseOut = React.useCallback(function (event) {\n if (extend.onMouseOut) {\n extend.onMouseOut.call(undefined, event);\n }\n if (props.onMouseOut) {\n props.onMouseOut.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseOut, props.onMouseOut, target]);\n var handleMouseOver = React.useCallback(function (event) {\n if (extend.onMouseOver) {\n extend.onMouseOver.call(undefined, event);\n }\n if (props.onMouseOver) {\n props.onMouseOver.call(undefined, {\n target: target.current,\n syntheticEvent: event\n });\n }\n }, [extend.onMouseOver, props.onMouseOver, target]);\n return {\n onClick: handleClick,\n onMouseUp: handleMouseUp,\n onMouseDown: handleMouseDown,\n onDoubleClick: handleDoubleClick,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onMouseMove: handelMouseMove,\n onMouseOut: handleMouseOut,\n onMouseOver: handleMouseOver\n };\n};\n","/**\n * @hidden\n */\nexport var SIZE_CLASSES = {\n 'default': '',\n 'xsmall': 'k-icon-xs',\n 'small': 'k-icon-sm',\n 'medium': 'k-icon-md',\n 'large': 'k-icon-lg',\n 'xlarge': 'k-icon-xl'\n};\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '../classNames';\nimport { SIZE_CLASSES } from './constants';\nimport { useMouse } from '../main';\n/**\n * Represents the [KendoReact Icon component]({% slug overview_icon %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var Icon = React.forwardRef(function (props, ref) {\n var className = props.className, name = props.name, themeColor = props.themeColor, size = props.size, flip = props.flip, style = props.style, others = __rest(props, [\"className\", \"name\", \"themeColor\", \"size\", \"flip\", \"style\"]);\n var target = React.useRef(null);\n var elementRef = React.useRef(null);\n React.useImperativeHandle(target, function () { return ({\n element: elementRef.current\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var themeColorProp = React.useMemo(function () { return themeColor || defaultProps.themeColor; }, [themeColor]);\n var sizeProp = React.useMemo(function () { return size || defaultProps.size; }, [size]);\n var flipProp = React.useMemo(function () { return flip || defaultProps.flip; }, [flip]);\n var fontClassNames = React.useMemo(function () { return classNames('k-icon', 'k-i-' + name, 'k-color-' + themeColorProp, {\n 'k-flip-h': flipProp === 'horizontal' || flipProp === 'both',\n 'k-flip-v': flipProp === 'vertical' || flipProp === 'both'\n }, SIZE_CLASSES[sizeProp], className); }, [name, themeColorProp, sizeProp, flipProp, className]);\n var mouseProps = useMouse(props, target);\n return (React.createElement(\"span\", __assign({ ref: elementRef }, others, mouseProps, { className: fontClassNames, style: style, role: \"presentation\" })));\n});\nIcon.propTypes = {\n style: PropTypes.object,\n classNames: PropTypes.string,\n name: PropTypes.string,\n themeColor: PropTypes.oneOf([\n 'inherit', 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'error', 'warning',\n 'dark', 'light', 'inverse'\n ]),\n size: PropTypes.oneOf(['default', 'xsmall', 'small', 'medium', 'large', 'xlarge']),\n flip: PropTypes.oneOf(['default', 'horizontal', 'vertical', 'both'])\n};\nvar defaultProps = {\n size: 'default',\n themeColor: 'inherit',\n flip: 'default'\n};\nIcon.displayName = 'KendoIcon';\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '../classNames';\nimport { SIZE_CLASSES } from './constants';\n/**\n * Represents the [KendoReact SvgIcon component]({% slug overview_svgicon %}).\n *\n * @example\n * ```jsx\n * import { accessibility } from '@progress/kendo-svg-icons';\n *\n * const App = () => {\n * return (\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var SvgIcon = React.forwardRef(function (props, ref) {\n var children = props.children, className = props.className, svgClassName = props.svgClassName, icon = props.icon, flip = props.flip, size = props.size, style = props.style, svgStyle = props.svgStyle, themeColor = props.themeColor, viewBox = props.viewBox, others = __rest(props, [\"children\", \"className\", \"svgClassName\", \"icon\", \"flip\", \"size\", \"style\", \"svgStyle\", \"themeColor\", \"viewBox\"]);\n var elementRef = React.useRef(null);\n React.useImperativeHandle(ref, function () { return ({\n element: elementRef.current\n }); });\n var iconNameProp = React.useMemo(function () { return icon ? icon.name : defaultProps.icon; }, [icon]);\n var themeColorProp = React.useMemo(function () { return themeColor || defaultProps.themeColor; }, [themeColor]);\n var sizeProp = React.useMemo(function () { return size || defaultProps.size; }, [size]);\n var flipProp = React.useMemo(function () { return flip || defaultProps.flip; }, [flip]);\n var viewBoxProp = React.useMemo(function () { return viewBox || defaultProps.viewBox; }, [viewBox]);\n var elementClassNames = React.useMemo(function () { return classNames('k-svg-icon', 'k-color-' + themeColorProp, 'k-svg-i-' + iconNameProp, {\n 'k-flip-h': flipProp === 'horizontal' || flipProp === 'both',\n 'k-flip-v': flipProp === 'vertical' || flipProp === 'both'\n }, SIZE_CLASSES[sizeProp], className); }, [iconNameProp, themeColorProp, sizeProp, flipProp, className]);\n var elementStyle = React.useMemo(function () {\n if (props.width && props.height) {\n return __assign({ width: props.width, height: props.height }, style);\n }\n else if (props.width) {\n return __assign({ width: props.width, height: props.width }, style);\n }\n else if (props.height) {\n return __assign({ width: props.height, height: props.height }, style);\n }\n else {\n return __assign({}, style);\n }\n }, [props.width, props.height, style]);\n return (React.createElement(\"span\", { className: elementClassNames, style: elementStyle, ref: elementRef },\n React.createElement(\"svg\", __assign({ className: svgClassName, style: svgStyle, \"aria-hidden\": true, focusable: \"false\", xmlns: \"http://www.w3.org/2000/svg\", viewBox: icon ? icon.viewBox : viewBoxProp, dangerouslySetInnerHTML: icon ? { __html: icon.content } : undefined }, others), icon ? undefined : children)));\n});\nSvgIcon.propTypes = {\n style: PropTypes.object,\n classNames: PropTypes.string,\n children: PropTypes.any,\n icon: PropTypes.object,\n themeColor: PropTypes.oneOf([\n 'inherit', 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'error', 'warning',\n 'dark', 'light', 'inverse'\n ]),\n size: PropTypes.oneOf(['default', 'xsmall', 'small', 'medium', 'large', 'xlarge']),\n flip: PropTypes.oneOf(['default', 'horizontal', 'vertical', 'both'])\n};\nvar defaultProps = {\n size: 'default',\n themeColor: 'inherit',\n flip: 'default',\n icon: '',\n viewBox: '0 0 24 24'\n};\nSvgIcon.displayName = 'KendoSvgIcon';\n","/**\n * @hidden\n */\nexport var FONT_SIZE_CLASSES = {\n 'xsmall': 'k-fs-xs',\n 'small': 'k-fs-sm',\n 'medium': 'k-fs-md',\n 'large': 'k-fs-lg',\n 'xlarge': 'k-fs-xl'\n};\n/**\n * @hidden\n */\nexport var FONT_WEIGHT_CLASSES = {\n 'light': 'k-font-weight-light',\n 'normal': 'k-font-weight-normal',\n 'bold': 'k-font-weight-bold'\n};\n/**\n * @hidden\n */\nexport var MARGIN_ENUM_CLASSES = {\n 'xsmall': 'k-m-xs',\n 'small': 'k-m-sm',\n 'medium': 'k-m-md',\n 'large': 'k-m-lg',\n 'xlarge': 'k-m-xl',\n 'thin': 'k-m-thin',\n 'hair': 'k-m-hair'\n};\n/**\n * @hidden\n */\nexport var MARGIN_ENUM_VALUES = {\n 'xsmall': 'xs',\n 'small': 'sm',\n 'medium': 'md',\n 'large': 'lg',\n 'xlarge': 'xl',\n 'thin': 'thin',\n 'hair': 'hair'\n};\n/**\n * @hidden\n */\nexport var MARGIN_SIDES_CLASSES = {\n 'top': 'k-mt-',\n 'right': 'k-mr-',\n 'bottom': 'k-mb-',\n 'left': 'k-ml-'\n};\n/**\n * @hidden\n */\nexport var TEXT_ALIGN_CLASSES = {\n 'left': 'k-text-left',\n 'right': 'k-text-right',\n 'center': 'k-text-center',\n 'justify': 'k-text-justify'\n};\n/**\n * @hidden\n */\nexport var TEXT_TRANSFORM_CLASSES = {\n 'lowercase': 'k-text-lowercase',\n 'uppercase': 'k-text-uppercase',\n 'capitalize': 'k-text-capitalize'\n};\n/**\n * @hidden\n */\nexport var THEME_COLOR_CLASSES = {\n 'inherit': 'k-color-inherit',\n 'primary': 'k-color-primary',\n 'secondary': 'k-color-secondary',\n 'tertiary': 'k-color-tertiary',\n 'info': 'k-color-info',\n 'success': 'k-color-success',\n 'warning': 'k-color-warning',\n 'error': 'k-color-error',\n 'dark': 'k-color-dark',\n 'light': 'k-color-light',\n 'inverse': 'k-color-inverse'\n};\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { FONT_SIZE_CLASSES, FONT_WEIGHT_CLASSES, MARGIN_ENUM_CLASSES, MARGIN_ENUM_VALUES, MARGIN_SIDES_CLASSES, TEXT_ALIGN_CLASSES, TEXT_TRANSFORM_CLASSES, THEME_COLOR_CLASSES } from './constants';\n/**\n * @hidden\n */\nvar generateTypography = function (element) {\n var component = React.forwardRef(function (props, ref) {\n var className = props.className, fontSize = props.fontSize, fontWeight = props.fontWeight, textAlign = props.textAlign, textTransform = props.textTransform, themeColor = props.themeColor, margin = props.margin, others = __rest(props, [\"className\", \"fontSize\", \"fontWeight\", \"textAlign\", \"textTransform\", \"themeColor\", \"margin\"]);\n var target = React.useRef(null);\n var elementRef = React.useRef(null);\n React.useImperativeHandle(target, function () { return ({\n element: elementRef.current,\n props: props\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var defaultClass = function () {\n var classMap = element === 'p' ? 'paragraph' : element;\n return \"k-\" + classMap;\n };\n var Component = element;\n var setMarginClassPerSide = function (marginSide, value) {\n var val = typeof value === 'string' ? MARGIN_ENUM_VALUES[value] : value;\n return \"\" + MARGIN_SIDES_CLASSES[marginSide] + val;\n };\n var setMarginClasses = function () {\n if (margin === undefined) {\n return;\n }\n if (typeof margin === 'string') {\n return [MARGIN_ENUM_CLASSES[margin]];\n }\n // The the predefined Kendo classes are starting from 0 to 24.\n if (typeof margin === 'number' && margin >= 0 && margin <= 24) {\n return [\"k-m-\" + margin];\n }\n if (typeof margin === 'object') {\n var marginClassesList_1 = [];\n Object.keys(margin).forEach(function (key) {\n if (margin[key] !== null && margin[key] !== undefined) {\n marginClassesList_1.push(setMarginClassPerSide(key, margin[key]));\n }\n });\n var classes = marginClassesList_1.join(' ');\n return classes;\n }\n };\n var setTypographyClasses = function () {\n var typographyArray = [\n defaultClass(),\n FONT_SIZE_CLASSES[fontSize],\n FONT_WEIGHT_CLASSES[fontWeight],\n TEXT_ALIGN_CLASSES[textAlign],\n TEXT_TRANSFORM_CLASSES[textTransform],\n THEME_COLOR_CLASSES[themeColor],\n setMarginClasses(),\n className\n ];\n var typographyClasses = typographyArray.filter(function (n) { return n !== undefined; }).join(' ');\n return typographyClasses;\n };\n return (React.createElement(Component, __assign({ ref: elementRef, className: setTypographyClasses() }, others), props.children));\n });\n component.propTypes = {\n style: PropTypes.object,\n className: PropTypes.string,\n fontSize: PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge']),\n fontWeight: PropTypes.oneOf(['light', 'normal', 'bold']),\n margin: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.object,\n PropTypes.oneOf(['xsmall', 'small', 'medium', 'large', 'xlarge', 'thin', 'hair'])\n ]),\n textAlign: PropTypes.oneOf(['left', 'right', 'center', 'justify']),\n textTransform: PropTypes.oneOf(['lowercase', 'uppercase', 'capitalize']),\n themeColor: PropTypes.oneOf([\n 'inherit', 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'error', 'warning',\n 'dark', 'light', 'inverse'\n ])\n };\n component.displayName = \"KendoReactTypography\" + element.toUpperCase();\n return component;\n};\n/**\n * Represents [KendoReact Typography Heading1 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 1\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h1 = generateTypography('h1');\n/**\n * Represents [KendoReact Typography Heading2 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 2\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h2 = generateTypography('h2');\n/**\n * Represents [KendoReact Typography Heading3 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 3\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h3 = generateTypography('h3');\n/**\n * Represents [KendoReact Typography Heading4 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 4\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h4 = generateTypography('h4');\n/**\n * Represents [KendoReact Typography Heading5 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 5\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h5 = generateTypography('h5');\n/**\n * Represents [KendoReact Typography Heading6 component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 6\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar h6 = generateTypography('h6');\n/**\n * Represents [KendoReact Typography Paragraph component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * I'm a paragraph text.\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar p = generateTypography('p');\n/**\n * Represents [KendoReact Typography Code component]({% slug overview_typography %}).\n * Use to create a single-line code snippet.\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * code\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar code = generateTypography('code');\n/**\n * Represents [KendoReact Typography Pre component]({% slug overview_typography %}).\n * Used along with [KendoReact Typography Code component]({% slug overview_typography %}) to create multi-line code snippet.\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * \n * {\n * const { name, value } = target;\n * const newData = Object.assign({}, data, { [name]: value });\n * setData(newData);\n * }\n * `}} />\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar pre = generateTypography('pre');\n/**\n * Represents the [KendoReact Typography component]({% slug overview_typography %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * Heading 2\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var Typography = {\n h1: h1,\n h2: h2,\n h3: h3,\n h4: h4,\n h5: h5,\n h6: h6,\n p: p,\n code: code,\n pre: pre\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _a, _b, _c;\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { RowHeightService, ScrollerService } from './services';\n/**\n * @hidden\n */\nexport var ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[ScrollDirection[\"Backward\"] = 0] = \"Backward\";\n ScrollDirection[ScrollDirection[\"Forward\"] = 1] = \"Forward\";\n})(ScrollDirection || (ScrollDirection = {}));\nvar differenceToScroll = function (scrollTop, staticOffset, maxScrollDifference) {\n return Math.min(Math.abs(staticOffset - scrollTop), maxScrollDifference);\n};\nvar FRAME_DURATION = 17;\nvar scrollModifiers = (_a = {},\n _a[ScrollDirection.Forward] = function (step) { return function (value) { return value + step; }; },\n _a[ScrollDirection.Backward] = function (step) { return function (value) { return value - step; }; },\n _a);\nvar scrollNormalizers = (_b = {},\n _b[ScrollDirection.Forward] = function (end) { return function (value) { return Math.min(value, end); }; },\n _b[ScrollDirection.Backward] = function (end) { return function (value) { return Math.max(value, end); }; },\n _b);\nvar scrollValidators = (_c = {},\n _c[ScrollDirection.Forward] = function (end) { return function (start) { return start < end; }; },\n _c[ScrollDirection.Backward] = function (end) { return function (start) { return start > end; }; },\n _c);\n/**\n * @hidden\n */\nvar Virtualization = /** @class */ (function (_super) {\n __extends(Virtualization, _super);\n function Virtualization(props) {\n var _this = _super.call(this, props) || this;\n _this.animationInProgress = false;\n _this.scrollTo = function (value) {\n var scrollProperty = _this.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';\n if (!_this.scrollContainer) {\n return;\n }\n _this.scrollContainer[scrollProperty] = value;\n };\n _this.scrollToIndex = function (index) {\n if (_this.scrollToIndexTimeout !== undefined) {\n window.cancelAnimationFrame(_this.scrollToIndexTimeout);\n }\n if (!_this.rowHeightService) {\n return;\n }\n _this.scrollToIndexTimeout = window.requestAnimationFrame(function () {\n _this.animationInProgress = false;\n _this.scrollTo(_this.rowHeightService.offset(index));\n });\n };\n _this.animateToIndex = function (index) {\n if (!_this.rowHeightService || !window) {\n return;\n }\n window.cancelAnimationFrame(_this.cancelAnimation);\n var indexOffset = _this.rowHeightService.offset(index);\n var direction = _this.getContainerScrollDirection(indexOffset);\n var _a = _this.scrollRange(indexOffset, direction), start = _a.start, end = _a.end;\n if (start === end) {\n return;\n }\n var step = _this.scrollStep(start, end);\n var modifyScroll = scrollModifiers[direction](step);\n var normalizeScroll = scrollNormalizers[direction](end);\n var isScrollValid = scrollValidators[direction](modifyScroll(end));\n var animate = function (progress) {\n _this.animationInProgress = true;\n var next = modifyScroll(progress);\n _this.scrollTo(normalizeScroll(next));\n isScrollValid(next)\n ? _this.cancelAnimation = window.requestAnimationFrame(function () { animate(next); })\n : _this.animationInProgress = false;\n };\n _this.cancelAnimation = window.requestAnimationFrame(function () { animate(start); });\n };\n _this.scrollToBottom = function () {\n if (!_this.rowHeightService) {\n return;\n }\n _this.scrollTo(_this.rowHeightService.totalHeight() + _this.props.bottomOffset);\n };\n _this.scrollStep = function (start, end) {\n var duration = _this.props.scrollDuration || Virtualization.defaultProps.scrollDuration;\n return Math.abs(end - start) / (duration / FRAME_DURATION);\n };\n _this.scrollRange = function (indexOffset, direction) {\n var containerScroll = _this.containerScrollPosition;\n if (parseInt(\"\" + indexOffset, 10) === parseInt(\"\" + containerScroll, 10)) {\n return { start: indexOffset, end: indexOffset };\n }\n var maxScroll = _this.containerMaxScroll();\n var sign = direction === ScrollDirection.Backward ? 1 : -1;\n var difference = differenceToScroll(containerScroll, indexOffset, _this.props.maxScrollDifference);\n var end = Math.min(indexOffset, maxScroll);\n var start = Math.min(Math.max(end + (sign * difference), 0), maxScroll);\n return { start: start, end: end };\n };\n _this.containerMaxScroll = function () {\n return _this.containerScrollSize - _this.containerOffsetSize;\n };\n _this.getContainerScrollDirection = function (indexOffset) {\n return indexOffset < _this.containerScrollPosition ? ScrollDirection.Backward : ScrollDirection.Forward;\n };\n _this.initServices = function (props) {\n if (props === void 0) { props = _this.props; }\n var dimension = _this.direction === 'vertical' ? props.itemHeight : props.itemWidth;\n if (dimension === undefined) {\n return;\n }\n _this.rowHeightService = new RowHeightService(props.total, dimension, 0);\n _this.scrollerService.create(_this.rowHeightService, props.skip, props.take, props.total, props.topOffset, _this.scrollOffsetSize, _this.direction);\n };\n _this.getContainerProperty = function (propertyName) {\n if (!_this.scrollContainer) {\n return 0;\n }\n return _this.scrollContainer[propertyName];\n };\n _this.handleScroll = function (event) {\n if (!_this.scrollContainer || !_this.rowHeightService) {\n return;\n }\n var target = event.target;\n _this.scrollerService.onScroll({\n scrollLeft: target.scrollLeft,\n scrollTop: target.scrollTop,\n offsetHeight: target.offsetHeight,\n offsetWidth: target.offsetWidth\n });\n var index = _this.rowHeightService.index(_this.containerScrollPosition - _this.props.topOffset);\n var onScrollAction = _this.props.onScrollAction;\n var args = {\n index: index,\n target: target,\n scrollAction: _this.scrollAction,\n pageAction: _this.pageAction,\n animationInProgress: _this.animationInProgress\n };\n if (_this.props.onScroll) {\n _this.props.onScroll.call(undefined, event);\n }\n if (onScrollAction) {\n onScrollAction.call(undefined, args);\n }\n _this.scrollAction = undefined;\n _this.pageAction = undefined;\n };\n _this.handleScrollAction = function (action) {\n _this.scrollAction = action;\n };\n _this.handlePageAction = function (action) {\n _this.pageAction = action;\n };\n _this.scrollerService = new ScrollerService(_this.handleScrollAction, _this.handlePageAction);\n return _this;\n }\n Object.defineProperty(Virtualization.prototype, \"element\", {\n get: function () {\n return this.scrollContainer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"containerOffsetSize\", {\n get: function () {\n return this.getContainerProperty(this.direction === 'vertical' ? 'offsetHeight' : 'offsetWidth');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"containerScrollSize\", {\n get: function () {\n return this.getContainerProperty(this.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"containerScrollPosition\", {\n get: function () {\n return this.getContainerProperty(this.direction === 'vertical' ? 'scrollTop' : 'scrollLeft');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"direction\", {\n get: function () {\n return this.props.direction !== undefined ? this.props.direction : Virtualization.defaultProps.direction;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"scrollOffsetSize\", {\n get: function () {\n return this.props.scrollOffsetSize !== undefined\n ? this.props.scrollOffsetSize : Virtualization.defaultProps.scrollOffsetSize;\n },\n enumerable: true,\n configurable: true\n });\n Virtualization.prototype.activeIndex = function () {\n return this.itemIndex(Math.ceil(this.containerScrollPosition));\n };\n Virtualization.prototype.itemIndex = function (offset) {\n if (!this.rowHeightService) {\n return 0;\n }\n return this.rowHeightService.index(offset);\n };\n Virtualization.prototype.itemOffset = function (index) {\n if (!this.rowHeightService) {\n return 0;\n }\n return this.rowHeightService.offset(index);\n };\n Virtualization.prototype.isIndexVisible = function (index) {\n if (!this.rowHeightService) {\n return false;\n }\n var containerTop = this.containerScrollPosition;\n var containerBottom = containerTop + this.containerOffsetSize;\n var top = this.rowHeightService.offset(index);\n var bottom = top + this.rowHeightService.height(index);\n return top >= containerTop && bottom <= containerBottom;\n };\n Virtualization.prototype.isListScrolled = function (index) {\n if (!this.rowHeightService) {\n return false;\n }\n return this.containerScrollPosition !== this.rowHeightService.offset(index);\n };\n Virtualization.prototype.componentDidMount = function () {\n var onMount = this.props.onMount;\n if (onMount) {\n onMount.call(undefined, this);\n }\n };\n Virtualization.prototype.render = function () {\n var _this = this;\n if (this.lastTotal !== this.props.total\n || this.lastDirection !== this.direction\n || this.lastTake !== this.props.take) {\n this.initServices();\n this.lastTotal = this.props.total;\n this.lastDirection = this.direction;\n this.lastTake = this.props.take;\n }\n var vertexLength = \"\" + ((this.rowHeightService ? this.rowHeightService.totalHeight() : 0) + this.props.bottomOffset);\n var placeholderStyle = this.direction === 'vertical'\n ? { height: vertexLength + \"px\" }\n : { width: vertexLength + \"px\" };\n var rootClassNames = classNames('k-content k-calendar-content k-scrollable', {\n 'k-scrollable-horizontal': this.direction === 'horizontal'\n }, this.props.className);\n var scrollableClassNames = classNames('k-scrollable-placeholder', {\n 'k-scrollable-horizontal-placeholder': this.direction === 'horizontal'\n });\n return (React.createElement(\"div\", { ref: function (el) { _this.scrollContainer = el; }, onScroll: this.handleScroll, className: rootClassNames, tabIndex: this.props.tabIndex, role: this.props.role },\n this.props.children,\n React.createElement(\"div\", { style: placeholderStyle, className: scrollableClassNames })));\n };\n Virtualization.propTypes = {\n bottomOffset: PropTypes.number.isRequired,\n className: PropTypes.string,\n direction: PropTypes.oneOf(['horizontal', 'vertical']),\n forceScroll: PropTypes.bool,\n itemHeight: PropTypes.number,\n itemWidth: PropTypes.number,\n maxScrollDifference: PropTypes.number,\n onScroll: PropTypes.func,\n onScrollAction: PropTypes.func,\n scrollDuration: PropTypes.number,\n scrollOffsetSize: PropTypes.number,\n skip: PropTypes.number.isRequired,\n tabIndex: PropTypes.number,\n take: PropTypes.number.isRequired,\n topOffset: PropTypes.number.isRequired,\n total: PropTypes.number.isRequired,\n role: PropTypes.string\n };\n Virtualization.defaultProps = {\n direction: 'vertical',\n forceScroll: false,\n scrollOffsetSize: 0,\n maxScrollDifference: 100,\n scrollDuration: 100\n };\n return Virtualization;\n}(React.Component));\nexport { Virtualization };\n","/**\n * A function that clones the passed date. The parameter could be `null`.\n *\n * @param date - The initial date value.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * cloneDate(new Date(2016, 0, 1)); // returns new Date(2016, 0, 1);\n * cloneDate(null); // returns null\n * ```\n */\nexport var cloneDate = function (date) { return date ? new Date(date.getTime()) : null; };\n","import { cloneDate } from './clone-date';\n/**\n * @hidden\n */\nexport var adjustDST = function (date, hour) {\n var newDate = cloneDate(date);\n if (hour === 0 && newDate.getHours() === 23) {\n newDate.setHours(newDate.getHours() + 2);\n }\n return newDate;\n};\n","import { adjustDST } from './adjust-dst';\n/**\n * A function which returns a new `Date` instance.\n *\n * @param year - The year value.\n * @param month - The month value.\n * @param day - The day value.\n * @param hours - The hours value.\n * @param minutes - The minutes value.\n * @param seconds - The seconds value.\n * @param milliseconds - milliseconds value.\n * @returns The date instance.\n *\n * @example\n * ```ts-no-run\n * createDate(2016, 0, 15); // 2016-01-15 00:00:00\n * createDate(2016, 0, 15, 22, 22, 20); // 2016-01-15 22:22:20\n * ```\n */\nexport var createDate = function (year, month, day, hours, minutes, seconds, milliseconds) {\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n var date = new Date(year, month, day, hours, minutes, seconds, milliseconds);\n if (year > -1 && year < 100) {\n date.setFullYear(date.getFullYear() - 1900);\n }\n return adjustDST(date, hours);\n};\n","import { createDate } from './create-date';\n/**\n * A function which returns the passed date with a midnight time portion.\n *\n * @param date - The initial date.\n * @returns - The date with a midnight time portion.\n *\n * @example\n * ```ts-no-run\n * getDate(new Date(2016, 0, 15, 14, 30, 30)); // 2016-01-15 00:00:00\n * ```\n */\nexport var getDate = function (date) {\n return createDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n};\n","/**\n * A function that compares two dates. The comparison also includes the time portion.\n *\n * @param candidate - The candidate date.\n * @param expected - The expected date.\n * @returns - A Boolean value indicating whether the values are equal.\n *\n * @example\n * ```ts-no-run\n * isEqual(new Date(2016, 0, 1), new Date(2016, 0, 1)); // true\n * isEqual(new Date(2016, 0, 1), new Date(2016, 0, 2)); // false\n * isEqual(new Date(2016, 0, 1, 10), new Date(2016, 0, 1, 20)); // false\n * ```\n */\nexport var isEqual = function (candidate, expected) {\n if (!candidate && !expected) {\n return true;\n }\n return candidate && expected && candidate.getTime() === expected.getTime();\n};\n","import { getDate } from './get-date';\nimport { isEqual } from './is-equal';\n/**\n * A function that compares the date portions of 2 dates.\n *\n * @param candidate - The candidate date.\n * @param expected - The expected date.\n * @returns - A Boolean value whether the values are equal.\n *\n * @example\n * ```ts-no-run\n * isEqualDate(new Date(2016, 0, 1, 10), new Date(2016, 0, 1, 20)); // true\n * isEqualDate(new Date(2016, 0, 1, 10), new Date(2016, 0, 2, 10)); // false\n * ```\n */\nexport var isEqualDate = function (candidate, expected) {\n if (!candidate && !expected) {\n return true;\n }\n return candidate && expected && isEqual(getDate(candidate), getDate(expected));\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-dateinputs',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584318,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","/**\n * @hidden\n */\nvar update = function (arr, idx, value) { return (arr.slice(0, idx + 1).concat((arr.slice(idx + 1).map(function (x) { return x + value; })))); };\n/**\n * @hidden\n */\nvar RowHeightService = /** @class */ (function () {\n function RowHeightService(total, rowHeight, detailRowHeight) {\n if (total === void 0) { total = 0; }\n this.total = total;\n this.rowHeight = rowHeight;\n this.detailRowHeight = detailRowHeight;\n this.offsets = [];\n this.heights = [];\n var agg = 0;\n for (var idx = 0; idx < total; idx++) {\n this.offsets.push(agg);\n agg += rowHeight;\n this.heights.push(rowHeight);\n }\n }\n RowHeightService.prototype.height = function (rowIndex) {\n return this.heights[rowIndex];\n };\n RowHeightService.prototype.expandDetail = function (rowIndex) {\n if (this.height(rowIndex) === this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight);\n }\n };\n RowHeightService.prototype.collapseDetail = function (rowIndex) {\n if (this.height(rowIndex) > this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight * -1);\n }\n };\n RowHeightService.prototype.index = function (position) {\n for (var i = 0; i < this.offsets.length; i++) {\n if (position === this.offsets[i]) {\n return i;\n }\n if (position < this.offsets[i]) {\n return i - 1;\n }\n }\n return this.total - 1;\n };\n RowHeightService.prototype.offset = function (rowIndex) {\n return this.offsets[rowIndex];\n };\n RowHeightService.prototype.totalHeight = function () {\n return this.heights.reduce(function (prev, curr) { return prev + curr; }, 0);\n };\n RowHeightService.prototype.updateRowHeight = function (rowIndex, value) {\n this.heights[rowIndex] += value;\n this.offsets = update(this.offsets, rowIndex, value);\n };\n return RowHeightService;\n}());\nexport { RowHeightService };\n","var normalize = function (x) { return Math.max(x, 0); };\n/**\n * @hidden\n */\nvar ScrollAction = /** @class */ (function () {\n function ScrollAction(offset) {\n this.offset = offset;\n }\n return ScrollAction;\n}());\nexport { ScrollAction };\n/**\n * @hidden\n */\nvar PageAction = /** @class */ (function () {\n function PageAction(skip) {\n this.skip = skip;\n }\n return PageAction;\n}());\nexport { PageAction };\n/**\n * @hidden\n */\nvar ScrollerService = /** @class */ (function () {\n function ScrollerService(onScrollAction, onPageAction) {\n this.onScrollAction = onScrollAction;\n this.onPageAction = onPageAction;\n this.firstLoaded = 0;\n this.bottomOffset = 0;\n this.topOffset = 0;\n }\n ScrollerService.prototype.create = function (rowHeightService, skip, take, total, topOffset, bottomOffset, direction) {\n if (topOffset === void 0) { topOffset = 0; }\n if (bottomOffset === void 0) { bottomOffset = 0; }\n if (direction === void 0) { direction = 'vertical'; }\n this.rowHeightService = rowHeightService;\n this.firstLoaded = skip;\n this.lastLoaded = skip + take;\n this.take = take;\n this.total = total;\n this.lastScrollTop = 0;\n this.topOffset = topOffset;\n this.bottomOffset = bottomOffset;\n this.direction = direction;\n var offsetBufferRows = this.rowsForHeight(topOffset);\n var skipWithOffset = normalize(skip - offsetBufferRows);\n this.onScrollAction(new ScrollAction(this.rowOffset(skipWithOffset)));\n this.onPageAction(new PageAction(skipWithOffset));\n };\n ScrollerService.prototype.onScroll = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollTop = _a.scrollTop, offsetHeight = _a.offsetHeight, offsetWidth = _a.offsetWidth;\n var scrollPosition = this.direction === 'vertical' ? scrollTop : scrollLeft;\n var offsetSize = this.direction === 'vertical' ? offsetHeight : offsetWidth;\n if (this.lastScrollTop === scrollPosition) {\n return;\n }\n var up = this.lastScrollTop >= scrollPosition;\n this.lastScrollTop = scrollPosition;\n var firstItemIndex = this.rowHeightService.index(normalize(scrollPosition - this.topOffset));\n var lastItemIndex = this.rowHeightService.index(normalize(scrollPosition + offsetSize - this.bottomOffset));\n if (!up && lastItemIndex >= this.lastLoaded && this.lastLoaded < this.total) {\n this.firstLoaded = firstItemIndex;\n this.onScrollAction(new ScrollAction(this.rowOffset(firstItemIndex)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n this.onPageAction(new PageAction(this.firstLoaded));\n }\n if (up && firstItemIndex <= this.firstLoaded) {\n var nonVisibleBuffer = Math.floor(this.take * 0.3);\n this.firstLoaded = normalize(firstItemIndex - nonVisibleBuffer);\n this.onScrollAction(new ScrollAction(this.rowOffset(this.firstLoaded)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n this.onPageAction(new PageAction(this.firstLoaded));\n }\n };\n ScrollerService.prototype.rowOffset = function (index) {\n return this.rowHeightService.offset(index) + this.topOffset;\n };\n ScrollerService.prototype.rowsForHeight = function (height) {\n return Math.ceil(height / this.rowHeightService.height(0));\n };\n return ScrollerService;\n}());\nexport { ScrollerService };\n","/**\n * Enumeration which represents the week days.\n */\nexport var Day;\n(function (Day) {\n /**\n * The Sunday value with an underlying `0` number value.\n */\n Day[Day[\"Sunday\"] = 0] = \"Sunday\";\n /**\n * The Monday value with an underlying `1` number value.\n */\n Day[Day[\"Monday\"] = 1] = \"Monday\";\n /**\n * The Tuesday value with an underlying `2` number value.\n */\n Day[Day[\"Tuesday\"] = 2] = \"Tuesday\";\n /**\n * The Wednesday value with an underlying `3` number value.\n */\n Day[Day[\"Wednesday\"] = 3] = \"Wednesday\";\n /**\n * The Thursday value with an underlying `4` number value.\n */\n Day[Day[\"Thursday\"] = 4] = \"Thursday\";\n /**\n * The Friday value with an underlying `5` number value.\n */\n Day[Day[\"Friday\"] = 5] = \"Friday\";\n /**\n * The Saturday value with an underlying `6` number value.\n */\n Day[Day[\"Saturday\"] = 6] = \"Saturday\";\n})(Day || (Day = {}));\n","import { adjustDST } from './adjust-dst';\nimport { cloneDate } from './clone-date';\n/**\n * A function that adds and subtracts days from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of days to add and subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addDays(new Date(2016, 0, 1), 5); // 2016-1-6\n * addDays(new Date(2016, 0, 1), -5); // 2015-12-26\n * ```\n */\nexport var addDays = function (date, offset) {\n var newDate = cloneDate(date);\n newDate.setDate(newDate.getDate() + offset);\n return adjustDST(newDate, date.getHours());\n};\n","// tslint:disable:max-line-length\n/**\n * An enumeration which represents the horizontal direction. The `Forward` option moves forward. The `Backward` option moves backward.\n */\nexport var Direction;\n(function (Direction) {\n /**\n * The `Forward` value with an underlying `1` number value.\n */\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n /**\n * The `Backward` value with an underlying `-1` (minus one) number value.\n */\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n// tslint:enable:max-line-length\n","import { Direction } from \"./direction.enum\";\nimport { adjustDST } from \"./adjust-dst\";\nimport { cloneDate } from './clone-date';\n/**\n * @hidden\n *\n * A function which returns the next or previous date for a specific week day. For example, `Day.Monday`.\n *\n * @param date - The date to calculate from.\n * @param weekDay - The `Day` enum specifying the desired week day.\n * @param direction - The `Direction` enum specifying the calculation direction.\n * @returns - A `Date` instance.\n *\n * @example\n * ```ts-no-run\n * dayOfWeek(new Date(2016, 0, 1), Day.Wednesday, Direction.Forward); // 2016-01-06, Wednesday\n * dayOfWeek(new Date(2016, 0, 1), Day.Wednesday, Direction.Backward); // 2015-12-30, Wednesday\n * ```\n */\nexport var dayOfWeek = function (date, weekDay, direction) {\n if (direction === void 0) { direction = Direction.Forward; }\n var newDate = cloneDate(date);\n var newDay = ((weekDay - newDate.getDay()) + (7 * direction)) % 7;\n newDate.setDate(newDate.getDate() + newDay);\n return adjustDST(newDate, date.getHours());\n};\n","/**\n * @hidden\n */\nexport var Action;\n(function (Action) {\n Action[Action[\"Left\"] = 0] = \"Left\";\n Action[Action[\"Right\"] = 1] = \"Right\";\n Action[Action[\"Up\"] = 2] = \"Up\";\n Action[Action[\"Down\"] = 3] = \"Down\";\n Action[Action[\"PrevView\"] = 4] = \"PrevView\";\n Action[Action[\"NextView\"] = 5] = \"NextView\";\n Action[Action[\"FirstInView\"] = 6] = \"FirstInView\";\n Action[Action[\"LastInView\"] = 7] = \"LastInView\";\n Action[Action[\"LowerView\"] = 8] = \"LowerView\";\n Action[Action[\"UpperView\"] = 9] = \"UpperView\";\n})(Action || (Action = {}));\n","/**\n * The Enum which defines all possible Calendar view types.\n */\nexport var CalendarViewEnum;\n(function (CalendarViewEnum) {\n CalendarViewEnum[CalendarViewEnum[\"month\"] = 0] = \"month\";\n CalendarViewEnum[CalendarViewEnum[\"year\"] = 1] = \"year\";\n CalendarViewEnum[CalendarViewEnum[\"decade\"] = 2] = \"decade\";\n CalendarViewEnum[CalendarViewEnum[\"century\"] = 3] = \"century\";\n})(CalendarViewEnum || (CalendarViewEnum = {}));\n","import { Day } from './day.enum';\nimport { addDays } from './add-days';\nimport { createDate } from './create-date';\nimport { prevDayOfWeek } from './prev-day-of-week';\nimport { MS_PER_DAY } from './constants';\nimport { getDate } from './get-date';\nvar moveDateToWeekStart = function (date, weekStartDay) {\n if (weekStartDay !== Day.Monday) {\n return addDays(prevDayOfWeek(date, weekStartDay), 4);\n }\n return addDays(date, (4 - (date.getDay() || 7)));\n};\nvar calcWeekInYear = function (date, weekStartDay) {\n var firstWeekInYear = createDate(date.getFullYear(), 0, 1, -6);\n var newDate = moveDateToWeekStart(date, weekStartDay);\n var diffInMS = newDate.getTime() - firstWeekInYear.getTime();\n var days = Math.floor(diffInMS / MS_PER_DAY);\n return 1 + Math.floor(days / 7);\n};\n/**\n * A function that returns the number of the week within a year, which is calculated in relation to the date.\n *\n * For more information, refer to the [**ISO week date**](https://en.wikipedia.org/wiki/ISO_week_date) article.\n *\n * @param date - The date used for the week number calculation.\n * @param weekStartDay - The first day of the week. By default, the first week day is Monday.\n * @returns - The number of the week within the year.\n *\n * @example\n * ```ts-no-run\n * weekInYear(new Date(2016, 0, 1)); // Week 53, 2015\n * weekInYear(new Date(2016, 0, 5)); // Week 1, 2016\n * weekInYear(new Date(2017, 0, 1)); // Week 52, 2016\n * weekInYear(new Date(2017, 0, 2)); // Week 1, 2017\n * ```\n */\nexport var weekInYear = function (date, weekStartDay) {\n if (weekStartDay === void 0) { weekStartDay = Day.Monday; }\n date = getDate(date);\n var prevWeekDate = addDays(date, -7);\n var nextWeekDate = addDays(date, 7);\n var weekNumber = calcWeekInYear(date, weekStartDay);\n if (weekNumber === 0) {\n return calcWeekInYear(prevWeekDate, weekStartDay) + 1;\n }\n if (weekNumber === 53 && calcWeekInYear(nextWeekDate, weekStartDay) > 1) {\n return 1;\n }\n return weekNumber;\n};\n","import { Direction } from \"./direction.enum\";\nimport { dayOfWeek } from './day-of-week';\n/**\n * A function which returns a date by a specific week name. For example, `Day.Monday`.\n *\n * @param date - The date to calculate from.\n * @param weekDay - The `Day` enum specifying the desired week day.\n * @returns - A `Date` instance.\n *\n * @example\n * ```ts-no-run\n * prevDayOfWeek(new Date(2016, 0, 1), Day.Wednesday); // 2015-12-30, Wednesday\n * ```\n */\nexport var prevDayOfWeek = function (date, weekDay) {\n return dayOfWeek(date, weekDay, Direction.Backward);\n};\n","/**\n * The number of milliseconds in one minute.\n */\nexport var MS_PER_MINUTE = 60000;\n/**\n * The number of milliseconds in one hour.\n */\nexport var MS_PER_HOUR = 3600000;\n/**\n * The number of milliseconds in one standard day.\n */\nexport var MS_PER_DAY = 86400000;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar compareProps = function (x, y) {\n var xProps = Object.getOwnPropertyNames(x);\n var yProps = Object.getOwnPropertyNames(y);\n if (xProps.length !== yProps.length) {\n return false;\n }\n for (var i = 0; i < xProps.length; i++) {\n var propName = xProps[i];\n if (x[propName] !== y[propName]) {\n return false;\n }\n }\n return true;\n};\n/**\n * The `CalendarCell` component is internally used for rendering the items in the current view. Also be used as a custom `cell` of the [Calendar]({% slug api_dateinputs_calendarprops %}#toc-cell) and the [MultiViewCalendar]({% slug api_dateinputs_multiviewcalendarprops %}#toc-cell).\n *\n * * [Customizing the cells inside the Calendar view]({% slug custom_rendering_calendar %}#toc-cells-inside-the-view)\n * * [Customizing the cells inside the MultiViewCalendar view]({% slug custom_rendering_multiviewcalendar %}#toc-cells-inside-the-view)\n */\nvar CalendarCell = /** @class */ (function (_super) {\n __extends(CalendarCell, _super);\n function CalendarCell() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // tslint:enable:max-line-length\n _this.handleClick = function (event) {\n var _a = _this.props, onClick = _a.onClick, value = _a.value;\n if (onClick) {\n onClick.call(undefined, value, event);\n }\n };\n _this.handleMouseEnter = function () {\n var _a = _this.props, onMouseEnter = _a.onMouseEnter, value = _a.value;\n if (onMouseEnter) {\n onMouseEnter.call(undefined, value);\n }\n };\n _this.handleMouseLeave = function () {\n var _a = _this.props, onMouseLeave = _a.onMouseLeave, value = _a.value;\n if (onMouseLeave) {\n onMouseLeave.call(undefined, value);\n }\n };\n return _this;\n }\n // Manually checking if the component needs an update\n // due to date object being compared by instance\n // and new Date object is created\n // every time and fails the shallow compare of the React.PureComponent.\n /**\n * @hidden\n */\n CalendarCell.prototype.shouldComponentUpdate = function (nextProps) {\n var _a = this.props, value = _a.value, props = __rest(_a, [\"value\"]);\n var newValue = nextProps.value, newProps = __rest(nextProps, [\"value\"]);\n var valueEqual = !(value && newValue) || value.getTime() === newValue.getTime();\n return !(valueEqual && compareProps(props, newProps));\n };\n /* eslint-disable max-len */\n /**\n * @return\n * Returns a `` element with a `` inside to apply the styles. The text inside is the [`formattedValue`]({% slug api_dateinputs_calendarcellprops %}#toc-formattedvalue) of the `cell`.\n */\n CalendarCell.prototype.render = function () {\n var _a = this.props, className = _a.className, formattedValue = _a.formattedValue, isWeekend = _a.isWeekend, isFocused = _a.isFocused, isInRange = _a.isInRange, isSelected = _a.isSelected, isRangeStart = _a.isRangeStart, isRangeMid = _a.isRangeMid, isRangeEnd = _a.isRangeEnd, isRangeSplitStart = _a.isRangeSplitStart, isRangeSplitEnd = _a.isRangeSplitEnd, isToday = _a.isToday, isDisabled = _a.isDisabled, view = _a.view, value = _a.value, other = __rest(_a, [\"className\", \"formattedValue\", \"isWeekend\", \"isFocused\", \"isInRange\", \"isSelected\", \"isRangeStart\", \"isRangeMid\", \"isRangeEnd\", \"isRangeSplitStart\", \"isRangeSplitEnd\", \"isToday\", \"isDisabled\", \"view\", \"value\"]);\n var isEndActive = this.props.activeRangeEnd === 'end' && isRangeEnd;\n var isStartActive = this.props.activeRangeEnd === 'start' && isRangeStart;\n var rootClassName = classNames('k-calendar-td', {\n 'k-range-end': isRangeEnd,\n 'k-range-mid': isRangeMid,\n 'k-range-split-end': isRangeSplitEnd,\n 'k-range-split-start': isRangeSplitStart,\n 'k-range-start': isRangeStart,\n 'k-state-active': isStartActive || isEndActive,\n 'k-state-pending-focus': isFocused,\n 'k-state-selected': isSelected || isRangeStart || isRangeEnd,\n 'k-today': isToday,\n 'k-weekend': isWeekend,\n 'k-state-disabled': isDisabled\n }, className);\n return (React.createElement(\"td\", __assign({}, other, { className: rootClassName, onClick: this.handleClick, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }),\n React.createElement(\"span\", { className: \"k-link\" }, this.props.children)));\n };\n return CalendarCell;\n}(React.Component));\nexport { CalendarCell };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * The `CalendarWeekCell` component is internally used for rendering the week cells inside the `month` view of the Calendar. Also used as a [custom week cell for the Calendar]({% slug api_dateinputs_calendarprops %}#toc-weekcell) and the [MultiViewCalendar]({% slug api_dateinputs_multiviewcalendarprops %}#toc-weekcell) components.\n *\n * * [Customizing week-column cells in the Calendar]({% slug custom_rendering_calendar %}#toc-cells-inside-the-week-column)\n * * [Customizing week-column cells in the MultiViewCalendar]({% slug custom_rendering_multiviewcalendar %}#toc-cells-inside-the-week-column)\n */\nvar CalendarWeekCell = /** @class */ (function (_super) {\n __extends(CalendarWeekCell, _super);\n function CalendarWeekCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @return\n * Returns a `` element with the [`value`]({% slug api_dateinputs_calendarweekcellprops %}#toc-value) as a child.\n */\n CalendarWeekCell.prototype.render = function () {\n var _a = this.props, className = _a.className, firstDate = _a.firstDate, other = __rest(_a, [\"className\", \"firstDate\"]);\n return (React.createElement(\"td\", __assign({ className: classNames('k-calendar-td', className) }, other), this.props.children));\n };\n return CalendarWeekCell;\n}(React.Component));\nexport { CalendarWeekCell };\n","/**\n * @hidden\n */\nexport var EMPTY_SELECTIONRANGE = { start: null, end: null };\n","var _a;\n/* tslint:disable:object-literal-sort-keys */\nimport { addDecades, addCenturies, cloneDate, durationInCenturies, firstYearOfDecade, firstDecadeOfCentury, lastDecadeOfCentury } from '@progress/kendo-date-math';\nimport { Action, EMPTY_SELECTIONRANGE } from '../models';\nimport { getToday, isInRange, isInSelectionRange, range, intersects } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addDecades(date, -1); },\n _a[Action.Up] = function (date) { return addDecades(date, -5); },\n _a[Action.Right] = function (date) { return addDecades(date, 1); },\n _a[Action.Down] = function (date) { return addDecades(date, 5); },\n _a[Action.PrevView] = function (date) { return addCenturies(date, -1); },\n _a[Action.NextView] = function (date) { return addCenturies(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstDecadeOfCentury(date); },\n _a[Action.LastInView] = function (date) { return lastDecadeOfCentury(date); },\n _a);\n/**\n * @hidden\n */\nvar CenturyViewService = /** @class */ (function () {\n function CenturyViewService() {\n }\n CenturyViewService.prototype.addToDate = function (min, skip) {\n return addCenturies(min, skip);\n };\n CenturyViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addCenturies(start, i); });\n };\n CenturyViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var cells = range(0, CELLS_LENGTH);\n var firstDate = firstDecadeOfCentury(viewDate);\n var lastDate = lastDecadeOfCentury(viewDate);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addDecades(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addDecades(baseDate, cellOffset), min, max);\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return intersects(cellDate, firstDate, lastDate) ? ({\n formattedValue: _this.value(cellDate),\n id: \"\" + cellUID + cellDate.getTime(),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isWeekend: false,\n isInRange: isInRange(cellDate, min, max),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n }) : null;\n });\n });\n };\n CenturyViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n CenturyViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n // TODO: double-check this!\n return firstYearOfDecade(candidate).getFullYear() === firstYearOfDecade(expected).getFullYear();\n };\n CenturyViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= (dates[dates.length - 1].getFullYear() + 99);\n };\n CenturyViewService.prototype.isInRange = function (candidate, min, max) {\n var year = firstYearOfDecade(candidate).getFullYear();\n var aboveMin = !min || firstYearOfDecade(min).getFullYear() <= year;\n var belowMax = !max || year <= firstYearOfDecade(max).getFullYear();\n return aboveMin && belowMax;\n };\n CenturyViewService.prototype.isInSameView = function (candidate, value) {\n return durationInCenturies(candidate, value) === 0;\n };\n CenturyViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 1000 === 0;\n };\n CenturyViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n CenturyViewService.prototype.cellTitle = function (value) {\n return firstYearOfDecade(value).getFullYear().toString();\n };\n CenturyViewService.prototype.navigationTitle = function (value) {\n return value ? firstDecadeOfCentury(value).getFullYear().toString() : '';\n };\n CenturyViewService.prototype.title = function (value) {\n if (!value) {\n return '';\n }\n return firstDecadeOfCentury(value).getFullYear() + \" - \" + lastDecadeOfCentury(value).getFullYear();\n };\n CenturyViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n CenturyViewService.prototype.skip = function (value, min) {\n return durationInCenturies(min, value);\n };\n CenturyViewService.prototype.total = function (min, max) {\n return durationInCenturies(min, max) + 1;\n };\n CenturyViewService.prototype.value = function (current) {\n return current ? firstYearOfDecade(current).getFullYear().toString() : '';\n };\n CenturyViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInCenturies(date, max) < border;\n return renderTwoViews ? addCenturies(date, -1) : date;\n };\n CenturyViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return CenturyViewService;\n}());\nexport { CenturyViewService };\n","var _a;\nimport { addDecades, addYears, cloneDate, durationInDecades, firstYearOfDecade, lastYearOfDecade } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { getToday, isInRange, isInSelectionRange, range, intersects } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addYears(date, -1); },\n _a[Action.Up] = function (date) { return addYears(date, -5); },\n _a[Action.Right] = function (date) { return addYears(date, 1); },\n _a[Action.Down] = function (date) { return addYears(date, 5); },\n _a[Action.PrevView] = function (date) { return addDecades(date, -1); },\n _a[Action.NextView] = function (date) { return addDecades(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstYearOfDecade(date); },\n _a[Action.LastInView] = function (date) { return lastYearOfDecade(date); },\n _a);\n/**\n * @hidden\n */\nvar DecadeViewService = /** @class */ (function () {\n function DecadeViewService() {\n }\n DecadeViewService.prototype.addToDate = function (min, skip) {\n return addDecades(min, skip);\n };\n DecadeViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addDecades(start, i); });\n };\n DecadeViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var cells = range(0, CELLS_LENGTH);\n var firstDate = firstYearOfDecade(viewDate);\n var lastDate = lastYearOfDecade(viewDate);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addYears(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addYears(baseDate, cellOffset), min, max);\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return intersects(cellDate, firstDate, lastDate) ? ({\n formattedValue: _this.value(cellDate),\n id: \"\" + cellUID + cellDate.getTime(),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isWeekend: false,\n isInRange: isInRange(cellDate, min, max),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n }) : null;\n });\n });\n };\n DecadeViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n DecadeViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return candidate.getFullYear() === expected.getFullYear();\n };\n DecadeViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= (dates[dates.length - 1].getFullYear() + 9);\n };\n DecadeViewService.prototype.isInRange = function (candidate, min, max) {\n var year = candidate.getFullYear();\n var aboveMin = !min || min.getFullYear() <= year;\n var belowMax = !max || year <= max.getFullYear();\n return aboveMin && belowMax;\n };\n DecadeViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 100 === 0;\n };\n DecadeViewService.prototype.isInSameView = function (candidate, value) {\n return durationInDecades(candidate, value) === 0;\n };\n DecadeViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n DecadeViewService.prototype.cellTitle = function (value) {\n return value.getFullYear().toString();\n };\n DecadeViewService.prototype.navigationTitle = function (value) {\n return value ? firstYearOfDecade(value).getFullYear().toString() : '';\n };\n DecadeViewService.prototype.title = function (value) {\n if (!value) {\n return '';\n }\n return firstYearOfDecade(value).getFullYear() + \" - \" + lastYearOfDecade(value).getFullYear();\n };\n DecadeViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n DecadeViewService.prototype.skip = function (value, min) {\n return durationInDecades(min, value);\n };\n DecadeViewService.prototype.total = function (min, max) {\n return durationInDecades(min, max) + 1;\n };\n DecadeViewService.prototype.value = function (current) {\n return current ? current.getFullYear().toString() : '';\n };\n DecadeViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInDecades(date, max) < border;\n return renderTwoViews ? addDecades(date, -1) : date;\n };\n DecadeViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return DecadeViewService;\n}());\nexport { DecadeViewService };\n","var _a;\nimport { addDays, addWeeks, addMonths, dayOfWeek, durationInMonths, getDate, firstDayOfMonth, lastDayOfMonth } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { getToday, isInRange, isInSelectionRange, range } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 7;\nvar ROWS_LENGTH = 6;\nvar SATURDAY = 6;\nvar SUNDAY = 0;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addDays(date, -1); },\n _a[Action.Up] = function (date) { return addWeeks(date, -1); },\n _a[Action.Right] = function (date) { return addDays(date, 1); },\n _a[Action.Down] = function (date) { return addWeeks(date, 1); },\n _a[Action.PrevView] = function (date) { return addMonths(date, -1); },\n _a[Action.NextView] = function (date) { return addMonths(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstDayOfMonth(date); },\n _a[Action.LastInView] = function (date) { return lastDayOfMonth(date); },\n _a);\n/**\n * @hidden\n */\nvar MonthViewService = /** @class */ (function () {\n function MonthViewService(intl) {\n this.intl = intl;\n }\n MonthViewService.prototype.addToDate = function (min, skip) {\n return addMonths(min, skip);\n };\n MonthViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addMonths(start, i); });\n };\n MonthViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var firstMonthDate = firstDayOfMonth(viewDate);\n var lastMonthDate = lastDayOfMonth(viewDate);\n var backward = -1;\n var date = dayOfWeek(firstMonthDate, this.intl.firstDay(), backward);\n var cells = range(0, CELLS_LENGTH);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addDays(date, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addDays(baseDate, cellOffset), min, max);\n var otherMonth = cellDate < firstMonthDate || cellDate > lastMonthDate;\n if (otherMonth) {\n return null;\n }\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n var cell = {\n formattedValue: _this.value(cellDate),\n id: \"\" + cellUID + cellDate.getTime(),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isInRange: isInRange(cellDate, min, max),\n isWeekend: _this.isWeekend(cellDate),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstMonthDate),\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastMonthDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n };\n return cell;\n });\n });\n };\n MonthViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return getDate(candidate).getTime() === getDate(expected).getTime();\n };\n MonthViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n MonthViewService.prototype.isInArray = function (date, dates) {\n return !!dates.length && firstDayOfMonth(dates[0]) <= date && date <= lastDayOfMonth(dates[dates.length - 1]);\n };\n MonthViewService.prototype.isInRange = function (candidate, min, max) {\n var value = getDate(candidate);\n var aboveMin = !min || getDate(min) <= value;\n var belowMax = !max || value <= getDate(max);\n return aboveMin && belowMax;\n };\n MonthViewService.prototype.isInSameView = function (candidate, value) {\n return durationInMonths(candidate, value) === 0;\n };\n MonthViewService.prototype.isRangeStart = function (value) {\n return !value.getMonth();\n };\n MonthViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n MonthViewService.prototype.cellTitle = function (value) {\n return this.intl.formatDate(value, 'D');\n };\n MonthViewService.prototype.navigationTitle = function (value) {\n if (!value) {\n return '';\n }\n return this.isRangeStart(value) ? value.getFullYear().toString() : this.abbrMonthNames()[value.getMonth()];\n };\n MonthViewService.prototype.title = function (current) {\n return this.wideMonthNames()[current.getMonth()] + \" \" + current.getFullYear();\n };\n MonthViewService.prototype.rowLength = function (prependCell) {\n return CELLS_LENGTH + (prependCell ? 1 : 0);\n };\n MonthViewService.prototype.skip = function (value, min) {\n return durationInMonths(min, value);\n };\n MonthViewService.prototype.total = function (min, max) {\n return durationInMonths(min, max) + 1;\n };\n MonthViewService.prototype.value = function (current) {\n return current ? current.getDate().toString() : '';\n };\n MonthViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInMonths(date, max) < border;\n return renderTwoViews ? addMonths(date, -1) : date;\n };\n MonthViewService.prototype.isWeekend = function (date) {\n var day = date.getDay();\n return day === SATURDAY || day === SUNDAY;\n };\n MonthViewService.prototype.abbrMonthNames = function () {\n return this.intl.dateFormatNames({ nameType: 'abbreviated', type: 'months' });\n };\n MonthViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return getDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return getDate(max);\n }\n return cellDate;\n };\n MonthViewService.prototype.wideMonthNames = function () {\n return this.intl.dateFormatNames({ nameType: 'wide', type: 'months' });\n };\n return MonthViewService;\n}());\nexport { MonthViewService };\n","var _a;\nimport { addMonths, addYears, createDate, durationInYears, firstMonthOfYear, lastMonthOfYear } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { getToday, isInRange, isInSelectionRange, range } from '../../utils';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { cloneDate } from '@progress/kendo-date-math';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar upStep = function (month) {\n if (month > 4) {\n return -5;\n }\n if (month < 2) {\n return -2;\n }\n return -7;\n};\nvar downStep = function (month) {\n if (month < 7) {\n return 5;\n }\n if (month < 10) {\n return 7;\n }\n return 2;\n};\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addMonths(date, -1); },\n _a[Action.Up] = function (date) { return addMonths(date, upStep(date.getMonth())); },\n _a[Action.Right] = function (date) { return addMonths(date, 1); },\n _a[Action.Down] = function (date) { return addMonths(date, downStep(date.getMonth())); },\n _a[Action.PrevView] = function (date) { return addYears(date, -1); },\n _a[Action.NextView] = function (date) { return addYears(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstMonthOfYear(date); },\n _a[Action.LastInView] = function (date) { return lastMonthOfYear(date); },\n _a);\n/**\n * @hidden\n */\nvar YearViewService = /** @class */ (function () {\n function YearViewService(intl) {\n this._intl = intl;\n }\n YearViewService.prototype.addToDate = function (min, skip) {\n return addYears(min, skip);\n };\n YearViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addYears(start, i); });\n };\n YearViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var months = this.abbrMonthNames();\n var firstDate = firstMonthOfYear(viewDate);\n var lastDate = lastMonthOfYear(viewDate);\n var currentYear = firstDate.getFullYear();\n var cells = range(0, CELLS_LENGTH);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addMonths(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addMonths(baseDate, cellOffset), min, max);\n var changedYear = currentYear < cellDate.getFullYear();\n if (changedYear) {\n return null;\n }\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return {\n formattedValue: months[cellDate.getMonth()],\n id: \"\" + cellUID + cellDate.getTime(),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isInRange: isInRange(cellDate, min, max),\n isWeekend: false,\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n };\n });\n });\n };\n YearViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n YearViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return candidate.getFullYear() === expected.getFullYear() &&\n candidate.getMonth() === expected.getMonth();\n };\n YearViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= dates[dates.length - 1].getFullYear();\n };\n YearViewService.prototype.isInRange = function (candidate, min, max) {\n var candidateValue = createDate(candidate.getFullYear(), candidate.getMonth(), 1);\n var aboveMin = !min || createDate(min.getFullYear(), min.getMonth(), 1) <= candidateValue;\n var belowMax = !max || candidateValue <= createDate(max.getFullYear(), max.getMonth(), 1);\n return aboveMin && belowMax;\n };\n YearViewService.prototype.isInSameView = function (candidate, value) {\n return durationInYears(candidate, value) === 0;\n };\n YearViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 10 === 0;\n };\n YearViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n YearViewService.prototype.cellTitle = function (value) {\n return value.getFullYear() + \" \" + this.value(value);\n };\n YearViewService.prototype.navigationTitle = function (value) {\n return this.title(value);\n };\n YearViewService.prototype.title = function (current) {\n return current ? current.getFullYear().toString() : '';\n };\n YearViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n YearViewService.prototype.skip = function (value, min) {\n return durationInYears(min, value);\n };\n YearViewService.prototype.total = function (min, max) {\n return durationInYears(min, max) + 1;\n };\n YearViewService.prototype.value = function (current) {\n return current ? this.abbrMonthNames()[current.getMonth()] : '';\n };\n YearViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInYears(date, max) < border;\n return renderTwoViews ? addYears(date, -1) : date;\n };\n YearViewService.prototype.abbrMonthNames = function () {\n return this._intl.dateFormatNames({ nameType: 'abbreviated', type: 'months' });\n };\n YearViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return YearViewService;\n}());\nexport { YearViewService };\n","var _a;\nimport { CenturyViewService } from './CenturyViewService';\nimport { DecadeViewService } from './DecadeViewService';\nimport { MonthViewService } from './MonthViewService';\nimport { YearViewService } from './YearViewService';\nimport { CalendarViewEnum } from '../models/CalendarViewEnum';\nvar services = (_a = {},\n _a[CalendarViewEnum.month] = MonthViewService,\n _a[CalendarViewEnum.year] = YearViewService,\n _a[CalendarViewEnum.decade] = DecadeViewService,\n _a[CalendarViewEnum.century] = CenturyViewService,\n _a);\nvar viewOffset = function (view, offset) {\n var candidate = CalendarViewEnum[CalendarViewEnum[view + offset]];\n return candidate !== undefined ? candidate : view;\n};\n/**\n * @hidden\n */\nvar BusViewService = /** @class */ (function () {\n function BusViewService(onViewChanged) {\n this.bottom = CalendarViewEnum.month;\n this.top = CalendarViewEnum.century;\n this.onViewChanged = onViewChanged;\n }\n BusViewService.prototype.configure = function (bottom, top) {\n this.bottom = bottom;\n this.top = top;\n };\n BusViewService.prototype.service = function (view, intl) {\n return new services[\"\" + view](intl);\n };\n BusViewService.prototype.moveDown = function (view, event) {\n this.move(view, -1, event);\n };\n BusViewService.prototype.moveUp = function (view, event) {\n this.move(view, 1, event);\n };\n BusViewService.prototype.moveToBottom = function (activeView) {\n if (activeView === this.bottom) {\n return;\n }\n this.onViewChanged({ view: this.bottom });\n };\n BusViewService.prototype.canMoveDown = function (view) {\n return this.bottom < view;\n };\n BusViewService.prototype.canMoveUp = function (view) {\n return view < this.top;\n };\n BusViewService.prototype.clamp = function (view) {\n if (view < this.bottom) {\n return this.bottom;\n }\n if (view > this.top) {\n return this.top;\n }\n return view;\n };\n BusViewService.prototype.move = function (view, offset, event) {\n var candidate = this.clamp(viewOffset(view, offset));\n if (candidate === view) {\n return;\n }\n this.onViewChanged({ view: candidate }, event);\n };\n return BusViewService;\n}());\nexport { BusViewService };\n","import { cloneDate, isEqual } from '@progress/kendo-date-math';\nimport { getDate } from '@progress/kendo-date-math';\nimport { EMPTY_SELECTIONRANGE } from './calendar/models/SelectionRange';\n/**\n * @hidden\n */\nexport var isEqualRange = function (initial, updated) {\n var _a = initial || EMPTY_SELECTIONRANGE, initialStart = _a.start, initialEnd = _a.end;\n var _b = updated || EMPTY_SELECTIONRANGE, updatedStart = _b.start, updatedEnd = _b.end;\n if (initialStart === null || initialEnd === null || updatedStart === null || updatedEnd === null) {\n return false;\n }\n return isEqual(initialStart, updatedStart) && isEqual(initialEnd, updatedEnd);\n};\n/**\n * @hidden\n */\nexport var viewInRange = function (candidate, min, max) {\n if (min === undefined || max === undefined) {\n return candidate;\n }\n return min <= candidate && candidate <= max\n ? candidate\n : candidate < min\n ? min\n : max;\n};\n/**\n * @hidden\n */\nexport var MIDNIGHT_DATE = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MIN_DATE = new Date(1900, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_DATE = new Date(2099, 11, 31);\n/**\n * @hidden\n */\nexport var MIN_TIME = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_TIME = new Date(1980, 0, 1, 23, 59, 59);\nvar isSet = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n */\nexport var isValidRange = function (min, max) { return (!isSet(min) || !isSet(max) || min <= max); };\n/**\n * @hidden\n */\nexport var setTime = function (origin, candidate) {\n var date = cloneDate(origin);\n date.setHours(candidate.getHours(), candidate.getMinutes(), candidate.getSeconds(), candidate.getMilliseconds());\n return date;\n};\n/**\n * @hidden\n */\nexport var getToday = function () { return getDate(new Date()); };\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) { return (!candidate || !((min && min > candidate) || (max && max < candidate))); };\n/**\n * @hidden\n */\nexport var isInDateRange = function (candidate, min, max) { return (candidate === null\n || !((min && getDate(min) > getDate(candidate))\n || (max && getDate(max) < getDate(candidate)))); };\n/**\n * @hidden\n */\nexport var isInSelectionRange = function (value, selectionRange) {\n var _a = selectionRange || EMPTY_SELECTIONRANGE, start = _a.start, end = _a.end;\n if (!start || !end) {\n return false;\n }\n return start < value && value < end;\n};\n/**\n * @hidden\n */\nexport var range = function (start, end, step) {\n if (step === void 0) { step = 1; }\n var result = [];\n for (var i = start; i < end; i = i + step) {\n result.push(i);\n }\n return result;\n};\n/**\n * @hidden\n */\nexport var intersects = function (date, min, max) {\n return min.getTime() <= date.getTime() && date.getTime() <= max.getTime();\n};\n/**\n * @hidden\n */\nexport var shiftWeekNames = function (names, offset) { return (names.slice(offset).concat(names.slice(0, offset))); };\n/**\n * @hidden\n */\nexport var dateInRange = function (candidate, min, max) {\n if (!candidate) {\n return candidate;\n }\n if (min && candidate < min) {\n return cloneDate(min);\n }\n if (max && candidate > max) {\n return cloneDate(max);\n }\n return candidate;\n};\n/**\n * @hidden\n */\nexport var domContainerFactory = function (type) { return function (children, classes, styles) {\n if (classes === void 0) { classes = ''; }\n if (styles === void 0) { styles = {}; }\n var container = document.createElement(type);\n container.className = classes;\n Object.keys(styles).map(function (key) { return container.style[key] = styles[key]; });\n if (typeof children === 'string') {\n container.innerHTML = children || '';\n }\n else {\n (children || []).forEach(function (child) { return child && container.appendChild(child); });\n }\n return container;\n}; };\n","import { addDays } from './add-days';\nimport { createDate } from './create-date';\n/**\n * A function which returns the last date of the month.\n *\n * @param date - The initial date.\n * @returns - The last date of the initial date month.\n *\n * @example\n * ```ts-no-run\n * lastDayOfMonth(new Date(2016, 0, 15)); // 2016-01-31\n * ```\n */\nexport var lastDayOfMonth = function (date) {\n var newDate = createDate(date.getFullYear(), date.getMonth() + 1, 1, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n return addDays(newDate, -1);\n};\n","import { adjustDST } from './adjust-dst';\nimport { cloneDate } from './clone-date';\nimport { lastDayOfMonth } from './last-day-of-month';\nvar MONTHS_LENGTH = 12;\nvar normalize = function (date, expectedMonth) { return (date.getMonth() !== expectedMonth ? lastDayOfMonth(addMonths(date, -1)) : date //tslint:disable-line:no-use-before-declare\n); };\n/**\n * A function that adds and subtracts months from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of months to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addMonths(new Date(2016, 5, 1), 5); // 2016-11-1\n * addMonths(new Date(2016, 5, 1), -5); // 2015-1-1\n * ```\n */\nexport var addMonths = function (date, offset) {\n var newDate = cloneDate(date);\n var diff = (newDate.getMonth() + offset) % MONTHS_LENGTH;\n var expectedMonth = (MONTHS_LENGTH + diff) % MONTHS_LENGTH;\n newDate.setMonth(newDate.getMonth() + offset);\n return normalize(adjustDST(newDate, date.getHours()), expectedMonth);\n};\n","import { addMonths } from './add-months';\nimport { createDate } from './create-date';\nimport { lastDayOfMonth } from './last-day-of-month';\n/**\n * @hidden\n */\nexport var setYear = function (value, year) {\n var month = value.getMonth();\n var candidate = createDate(year, month, value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds());\n return candidate.getMonth() === month ? candidate : lastDayOfMonth(addMonths(candidate, -1));\n};\n","import { adjustDST } from './adjust-dst';\nimport { setYear } from './set-year';\n/**\n * A function that adds and subtracts years from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of years to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addYears(new Date(2016, 5, 1), 5); // 2011-6-1\n * addYears(new Date(2016, 5, 1), -5); // 2021-6-1\n * ```\n */\nexport var addYears = function (value, offset) {\n return adjustDST(setYear(value, value.getFullYear() + offset), value.getHours());\n};\n","import { addYears } from './add-years';\n/**\n * A function that adds and subtracts decades from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of decades to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addDecades(new Date(2016, 5, 1), 5); // 2066-6-1\n * addDecades(new Date(2016, 5, 1), -5); // 1966-6-1\n * ```\n */\nexport var addDecades = function (value, offset) {\n return addYears(value, 10 * offset);\n};\n","import { addYears } from './add-years';\n/**\n * A function that adds and subtracts centuries from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of centuries to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addCenturies(new Date(2016, 5, 1), 5); // 2516-6-1\n * addCenturies(new Date(2016, 5, 1), -5); // 1516-6-1\n * ```\n */\nexport var addCenturies = function (value, offset) {\n return addYears(value, 100 * offset);\n};\n","import { setYear } from './set-year';\n/**\n * @hidden\n */\nexport var normalizeYear = function (value, year) { return (setYear(value, year(value.getFullYear()))); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the first decade in a century.\n *\n * @param date - The start date value.\n * @returns - The first year in a century.\n *\n * @example\n * ```ts-no-run\n * firstDecadeOfCentury(new Date(2017, 0, 1)); // 2000-1-1\n * firstDecadeOfCentury(new Date(2007, 10, 22)); // 2000-11-22\n * firstDecadeOfCentury(new Date(2126, 0, 1)); // 2100-1-1\n * ```\n */\nexport var firstDecadeOfCentury = function (value) { return (normalizeYear(value, function (y) { return y - (y % 100); })); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the last decade in a century.\n *\n * @param date - The start date value.\n * @returns - The last year in a decade.\n *\n * @example\n * ```ts-no-run\n * lastDecadeOfCentury(new Date(2017, 0, 1)); // 2090-1-1\n * lastDecadeOfCentury(new Date(2007, 10, 22)); // 2090-11-22\n * lastDecadeOfCentury(new Date(2126, 0, 1)); // 2190-1-1\n * ```\n */\nexport var lastDecadeOfCentury = function (value) { return (normalizeYear(value, function (y) { return y - (y % 100) + 90; })); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the first year in a decade.\n *\n * @param date - The start date value.\n * @returns - The first year in a decade.\n *\n * @example\n * ```ts-no-run\n * firstYearOfDecade(new Date(2017, 0, 1)); // 2010-1-1\n * firstYearOfDecade(new Date(2007, 10, 22)); // 2000-11-22\n * firstYearOfDecade(new Date(2026, 0, 1)); // 2020-1-1\n * ```\n */\nexport var firstYearOfDecade = function (value) { return (normalizeYear(value, function (y) { return y - (y % 10); })); };\n","import { firstDecadeOfCentury } from './first-decade-of-century';\n/**\n * A function that calculates duration in centuries between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInCenturies(new Date(2016, 0, 1), new Date(3216, 0, 1)); // 12\n * durationInCenturies(new Date(2016, 6, 1), new Date(2617, 0, 1)); // 6\n * durationInCenturies(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInCenturies = function (start, end) { return ((firstDecadeOfCentury(end).getFullYear() - firstDecadeOfCentury(start).getFullYear()) / 100); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the last year in a decade.\n *\n * @param date - The start date value.\n * @returns - The last year in a decade.\n *\n * @example\n * ```ts-no-run\n * lastYearOfDecade(new Date(2017, 0, 1)); // 2019-1-1\n * lastYearOfDecade(new Date(2007, 10, 22)); // 2009-11-22\n * lastYearOfDecade(new Date(2026, 0, 1)); // 2029-1-1\n * ```\n */\nexport var lastYearOfDecade = function (value) { return (normalizeYear(value, function (y) { return y - (y % 10) + 9; })); };\n","import { firstYearOfDecade } from './first-year-of-decade';\n/**\n * A function that calculates duration in decades between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInDecades(new Date(2016, 0, 1), new Date(2136, 0, 1)); // 12\n * durationInDecades(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInDecades = function (start, end) { return ((firstYearOfDecade(end).getFullYear() - firstYearOfDecade(start).getFullYear()) / 10); };\n","import { addDays } from './add-days';\n/**\n * A function that adds and subtracts weeks from a Date object.\n *\n * @param date - The initial date value.\n * @param offset - The number of weeks to add/subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addWeeks(new Date(2016, 5, 1), 3); // 2016-6-22\n * addWeeks(new Date(2016, 5, 1), -3); // 2015-5-11\n * ```\n */\nexport var addWeeks = function (date, offset) {\n return addDays(date, offset * 7);\n};\n","import { createDate } from './create-date';\n/**\n * A function which returns the first date of the month.\n *\n * @param date - The initial date.\n * @returns - The first date of the initial date month.\n *\n * @example\n * ```ts-no-run\n * firstDayOfMonth(new Date(2016, 0, 15)); // 2016-01-01\n * ```\n */\nexport var firstDayOfMonth = function (date) {\n return createDate(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n};\n","/**\n * A function that calculates duration in months between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInMonths(new Date(2016, 0, 1), new Date(2017, 0, 1)); // 12\n * durationInMonths(new Date(2016, 6, 1), new Date(2017, 0, 1)); // 6\n * durationInMonths(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInMonths = function (start, end) { return (((end.getFullYear() - start.getFullYear())) * 12 + (end.getMonth() - start.getMonth())); };\n","import { addMonths } from './add-months';\nimport { createDate } from './create-date';\nimport { lastDayOfMonth } from './last-day-of-month';\n/**\n * @hidden\n */\nexport var setMonth = function (value, month) {\n var day = value.getDate();\n var candidate = createDate(value.getFullYear(), month, day, value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds());\n return candidate.getDate() === day ? candidate : lastDayOfMonth(addMonths(candidate, -1));\n};\n","import { setMonth } from './set-month';\n/**\n * A function that returns a `Date` object of the first month in a year.\n *\n * @param date - The start date value.\n * @returns - The first month in a year.\n *\n * @example\n * ```ts-no-run\n * firstMonthOfYear(new Date(2017, 11, 1)); // 2017-1-1\n * firstMonthOfYear(new Date(2017, 0, 1)); // 2017-1-1\n * ```\n */\nexport var firstMonthOfYear = function (value) { return setMonth(value, 0); };\n","import { setMonth } from './set-month';\n/**\n * A function that returns a `Date` object of the last month in a year.\n *\n * @param date - The start date value.\n * @returns - The last month in a year.\n *\n * @example\n * ```ts-no-run\n * lastMonthOfYear(new Date(2017, 5, 3)); // 2017-12-3\n * lastMonthOfYear(new Date(2017, 11, 3)); // 2017-12-3\n * ```\n */\nexport var lastMonthOfYear = function (value) { return setMonth(value, 11); };\n","/**\n * A function that calculates duration in years between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in years.\n *\n * @example\n * ```ts-no-run\n * durationInYears(new Date(2016, 0, 1), new Date(2028, 0, 1)); // 12\n * durationInYears(new Date(2016, 0, 1), new Date(2022, 0, 1)); // 6\n * durationInYears(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInYears = function (start, end) { return (end.getFullYear() - start.getFullYear()); };\n","import { CalendarViewEnum } from '../models/CalendarViewEnum';\nimport { domContainerFactory as containerFactory } from '../../utils';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n this.didCalculate = false;\n }\n DOMService.prototype.ensureHeights = function () {\n if (this.calendarHeight !== undefined) {\n return;\n }\n this.calculateHeights();\n };\n DOMService.prototype.calculateHeights = function (container) {\n var _this = this;\n if (!canUseDOM) {\n return;\n }\n var div = containerFactory('div');\n var ul = containerFactory('ul');\n var li = containerFactory('li');\n var td = containerFactory('td');\n var th = containerFactory('th');\n var tr = containerFactory('tr');\n var tbody = containerFactory('tbody');\n var thead = containerFactory('thead');\n var table = containerFactory('table');\n var monthHeader = function () { return (div(\"\\n March 2017\\n TODAY\\n \", 'k-calendar-header')); };\n var monthWeekHeader = function () { return (table([\n thead([\n tr([th('MO')])\n ])\n ], 'k-calendar-weekdays')); };\n var repeat = function (count, mapper) { return new Array(count).fill('1').map(mapper); };\n var content = function (rows, cells) {\n if (cells === void 0) { cells = 1; }\n return (table([\n tbody([tr([th('1')])].concat(repeat(rows, function () { return tr(repeat(cells, function (c) { return td(\"\" + c + \"\"); })); })))\n ]));\n };\n var scrollable = function (children) { return div(children, 'k-content k-scrollable'); };\n var view = function (contentElement, className, renderWeekHeader) { return (div(renderWeekHeader\n ? [\n monthHeader(),\n monthWeekHeader(),\n scrollable([contentElement, contentElement])\n ]\n : [\n monthHeader(),\n scrollable([contentElement, contentElement])\n ], className, { left: '-10000px', position: 'absolute' })); };\n var navigationList = (function () {\n var navElement;\n return function () {\n if (!canUseDOM) {\n return null;\n }\n if (!navElement) {\n navElement = div([scrollable([ul([li('FEB')])])], 'k-calendar-navigation', { left: '0px', position: 'absolute' });\n }\n return navElement;\n };\n })();\n var viewFactory = function (_a, className, renderWeekHeader) {\n var cells = _a.cells, rows = _a.rows;\n var viewElement;\n return function () {\n if (!canUseDOM) {\n return null;\n }\n if (!viewElement) {\n viewElement = view(content(rows, cells), className, renderWeekHeader);\n }\n return viewElement;\n };\n };\n var getScrollable = function (element) { return element.querySelector('.k-scrollable'); };\n var horizontal = function (element) {\n var scrollableElement = getScrollable(element);\n scrollableElement.className = scrollableElement.className + \" k-scrollable-horizontal\";\n return element;\n };\n var monthView = viewFactory({ cells: 7, rows: 6 }, 'k-calendar-view k-calendar-monthview', true);\n var yearView = viewFactory({ cells: 5, rows: 3 }, 'k-calendar-view k-calendar-yearview', false);\n var decadeView = viewFactory({ cells: 5, rows: 2 }, 'k-calendar-view k-calendar-decadeview', false);\n var horzMonthView = function () { return horizontal(monthView()); };\n var horzYearView = function () { return horizontal(yearView()); };\n var horzDecadeView = function () { return horizontal(decadeView()); };\n var height = function (element) { return (parseFloat(window.getComputedStyle(element).height) || element.offsetHeight); };\n var width = function (element) {\n var styles = window.getComputedStyle(element);\n var computed = parseFloat(styles.width)\n + parseFloat(styles.paddingLeft)\n + parseFloat(styles.paddingRight);\n return computed || element.offsetWidth;\n };\n var getBody = function (element) { return element.querySelector('tbody'); };\n this.didCalculate = true;\n if (container) {\n this.hostContainer = container;\n }\n this.batch(monthView(), function (contentElement) {\n var viewElement = getBody(contentElement);\n _this.calendarHeight = height(contentElement);\n _this.monthViewHeight = height(viewElement);\n _this.headerHeight = height(viewElement.children[0]);\n _this.scrollableContentHeight = height(getScrollable(contentElement));\n });\n this.batch(horzMonthView(), function (contentElement) {\n var viewElement = getBody(contentElement);\n _this.calendarWidth = width(contentElement);\n _this.monthViewWidth = width(viewElement);\n _this.scrollableContentWidth = width(getScrollable(contentElement));\n });\n this.batch(yearView(), function (contentElement) {\n _this.yearViewHeight = height(getBody(contentElement));\n _this.scrollableYearContentHeight = height(getScrollable(contentElement));\n });\n this.batch(horzYearView(), function (contentElement) {\n _this.yearViewWidth = width(getBody(contentElement));\n });\n this.batch(decadeView(), function (contentElement) {\n _this.decadeViewHeight = height(getBody(contentElement));\n _this.centuryViewHeight = _this.decadeViewHeight;\n });\n this.batch(horzDecadeView(), function (contentElement) {\n _this.decadeViewWidth = width(getBody(contentElement));\n _this.centuryViewWidth = _this.decadeViewWidth;\n });\n this.batch(navigationList(), function (contentElement) {\n _this.navigationItemHeight = height(contentElement.querySelector('li'));\n });\n };\n DOMService.prototype.viewHeight = function (viewType) {\n return this.viewDimension(viewType, 'height');\n };\n DOMService.prototype.viewWidth = function (viewType) {\n return this.viewDimension(viewType, 'width');\n };\n DOMService.prototype.viewDimension = function (viewType, dimension) {\n var viewProp = dimension === 'height' ? 'ViewHeight' : 'ViewWidth';\n switch (viewType) {\n case CalendarViewEnum.month:\n return this[\"month\" + viewProp];\n case CalendarViewEnum.year:\n return this[\"year\" + viewProp];\n case CalendarViewEnum.decade:\n return this[\"decade\" + viewProp];\n case CalendarViewEnum.century:\n return this[\"century\" + viewProp];\n default:\n return 1;\n }\n };\n DOMService.prototype.batch = function (contentElement, action) {\n var hostContainer = this.hostContainer || document.body;\n var appendedContent = hostContainer.appendChild(contentElement);\n action(appendedContent);\n hostContainer.removeChild(appendedContent);\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { Action } from '../models/NavigationAction';\nvar KEY_TO_ACTION = {\n '33': Action.PrevView,\n '34': Action.NextView,\n '35': Action.LastInView,\n '36': Action.FirstInView,\n '37': Action.Left,\n '38': Action.Up,\n '39': Action.Right,\n '40': Action.Down,\n 'meta+38': Action.UpperView,\n 'meta+40': Action.LowerView\n};\n/**\n * @hidden\n */\nvar NavigationService = /** @class */ (function () {\n function NavigationService(bus) {\n this.bus = bus;\n }\n NavigationService.prototype.action = function (event) {\n var action = \"\" + (event.ctrlKey || event.metaKey ? 'meta+' : '') + event.keyCode;\n return KEY_TO_ACTION[action];\n };\n NavigationService.prototype.move = function (value, action, activeView, service, event) {\n if (!service) {\n return value;\n }\n if (action === Action.UpperView && this.bus.canMoveUp(activeView)) {\n this.bus.moveUp(activeView, event);\n return value;\n }\n if (action === Action.LowerView && this.bus.canMoveDown(activeView)) {\n this.bus.moveDown(activeView, event);\n return value;\n }\n return service.move(value, action);\n };\n return NavigationService;\n}());\nexport { NavigationService };\n","var divideByMagnitude = function (magnitude) { return function (x) { return Math.floor(x / magnitude); }; };\nvar powerByMagnitude = function (magnitude) { return function (x) { return x * magnitude; }; };\n/**\n * @hidden\n */\nvar ScrollSyncService = /** @class */ (function () {\n function ScrollSyncService(dom) {\n this.dom = dom;\n this.monthScrolled = false;\n this.navScrolled = false;\n }\n ScrollSyncService.prototype.configure = function (activeView) {\n var magnitude = Math.max(this.dom.viewHeight(activeView) / this.dom.navigationItemHeight, 1);\n this.divideByMagnitude = divideByMagnitude(magnitude);\n this.powerByMagnitude = powerByMagnitude(magnitude);\n };\n ScrollSyncService.prototype.sync = function (navigator, view, e) {\n if (!navigator || !view) {\n return;\n }\n this.navigator = navigator;\n this.view = view;\n if (e.target === this.navigator.element) {\n if (this.monthScrolled) {\n this.monthScrolled = false;\n return;\n }\n this.navScrolled = true;\n this.scrollSiblingOf(this.navigator.element);\n }\n if (e.target === this.view.element) {\n if (this.navScrolled) {\n this.navScrolled = false;\n return;\n }\n this.monthScrolled = true;\n this.scrollSiblingOf(this.view.element);\n }\n };\n ScrollSyncService.prototype.scrollSiblingOf = function (scrolledElement) {\n var component = this.siblingComponent(scrolledElement);\n var scrollTop = this.calculateScroll(component, scrolledElement.scrollTop);\n component.scrollTo(scrollTop);\n };\n ScrollSyncService.prototype.siblingComponent = function (scrollableElement) {\n return this.navigator.element === scrollableElement ? this.view : this.navigator;\n };\n ScrollSyncService.prototype.calculateScroll = function (component, scrollTop) {\n var modifier = component === this.navigator ? this.divideByMagnitude : this.powerByMagnitude;\n return modifier(scrollTop);\n };\n return ScrollSyncService;\n}());\nexport { ScrollSyncService };\n","import { shiftWeekNames } from '../../utils';\n/**\n * @hidden\n */\nvar WeekNamesService = /** @class */ (function () {\n function WeekNamesService(intl) {\n this.intl = intl;\n }\n WeekNamesService.prototype.getWeekNames = function (includeWeekNumber) {\n if (includeWeekNumber === void 0) { includeWeekNumber = false; }\n var weekNames = shiftWeekNames(this.intl.dateFormatNames({ nameType: 'short', type: 'days' }), this.intl.firstDay());\n return includeWeekNumber ? [''].concat(weekNames) : weekNames;\n };\n return WeekNamesService;\n}());\nexport { WeekNamesService };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { weekInYear, cloneDate } from '@progress/kendo-date-math';\nimport { registerForIntl, provideIntlService } from '@progress/kendo-react-intl';\nimport { CalendarCell } from './CalendarCell';\nimport { CalendarWeekCell } from './CalendarWeekCell';\nimport { CalendarViewEnum } from '../models';\nimport { setTime, getToday } from '../../utils';\nimport { WeekNamesService } from '../services';\n// In case we decide to render content for the next month in the empty cells,\n// add k-other-month class to all cells and k-weekend for weekend cells.\n// tslint:disable-next-line jsx-use-translation-function\nvar emptyCell = function (idx) { return (React.createElement(\"td\", { key: idx, className: 'k-calendar-td' }, \"\\u00A0\")); };\n/**\n * @hidden\n */\nvar View = /** @class */ (function (_super) {\n __extends(View, _super);\n function View() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.buildWeekNumber = function (row, idx) {\n var firstDayOfWeek = _this.firstDate(row);\n if (!firstDayOfWeek) {\n return emptyCell(\"week-cell-\" + idx);\n }\n var firstDate = _this.firstDate(row);\n var weekCellValue = _this.getWeekNumber(firstDate);\n var uniqueID = \"kendo-react-calendar-week-cell-\" + weekCellValue;\n var cellProps = {\n className: 'k-alt',\n value: weekCellValue,\n firstDate: firstDate\n };\n return _this.props.weekCell\n ? React.createElement(_this.props.weekCell, __assign({}, cellProps, { key: uniqueID }), weekCellValue)\n : React.createElement(CalendarWeekCell, __assign({}, cellProps, { key: uniqueID }), weekCellValue);\n };\n _this.buildRow = function (row) {\n return row.map(function (cell, idx) {\n if (!cell) {\n return emptyCell(idx);\n }\n var aria = { 'aria-selected': cell.isSelected };\n var uniqueID = \"kendo-react-calendar-cell-\" + cell.value.getTime();\n var cellProps = __assign({}, aria, cell, { isDisabled: !cell.isInRange, view: _this.props.activeView, onClick: _this.handleClick, onMouseEnter: _this.handleMouseEnter, onMouseLeave: _this.handleMouseLeave });\n return _this.props.cell\n ? (React.createElement(_this.props.cell, __assign({}, cellProps, { key: uniqueID }), cell.formattedValue))\n : (React.createElement(CalendarCell, __assign({}, cellProps, { key: uniqueID }), cell.formattedValue));\n });\n };\n _this.firstDate = function (row) {\n var cell = _this.firstWeekDateContext(row);\n return cell ? cell.value : null;\n };\n _this.firstWeekDateContext = function (rowCtx) {\n if (!_this.weekNumber) {\n return null;\n }\n var idx = 0;\n var ctx = rowCtx[idx];\n while (!ctx && idx < rowCtx.length) {\n ctx = rowCtx[++idx];\n }\n return ctx;\n };\n _this.handleClick = function (value, event) {\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n value: cloneDate(value),\n target: _this,\n nativeEvent: event && event.nativeEvent,\n syntheticEvent: event\n };\n onChange.call(undefined, args);\n }\n };\n _this.handleMouseEnter = function (value) {\n var onCellEnter = _this.props.onCellEnter;\n if (onCellEnter) {\n onCellEnter.call(undefined, cloneDate(value));\n }\n };\n _this.handleMouseLeave = function (value) {\n var onCellLeave = _this.props.onCellLeave;\n if (onCellLeave) {\n onCellLeave.call(undefined, cloneDate(value));\n }\n };\n return _this;\n }\n Object.defineProperty(View.prototype, \"min\", {\n get: function () {\n return this.props.min;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"max\", {\n get: function () {\n return this.props.max;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"isHorizontal\", {\n get: function () {\n return this.props.direction === 'horizontal';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"isMonthView\", {\n get: function () {\n return this.props.activeView === CalendarViewEnum.month;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"weekNumber\", {\n get: function () {\n return Boolean(this.props.showWeekNumbers && this.props.activeView === CalendarViewEnum.month);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"selectedDate\", {\n get: function () {\n return this.props.selectedDate !== undefined ? this.props.selectedDate : View.defaultProps.selectedDate;\n },\n enumerable: true,\n configurable: true\n });\n View.prototype.render = function () {\n var _this = this;\n this.intl = provideIntlService(this);\n this.weekService = new WeekNamesService(this.intl);\n var weekNames = this.weekService.getWeekNames(this.weekNumber);\n var colSpan = this.props.service.rowLength(this.weekNumber);\n var title = this.props.service.title(this.props.viewDate);\n var time = getToday();\n var viewDate = setTime(this.props.viewDate, time);\n var data = this.props.service.data({\n cellUID: this.props.cellUID,\n min: this.min,\n max: this.max,\n focusedDate: this.props.focusedDate,\n isActiveView: !this.props.bus.canMoveDown(this.props.activeView),\n selectedDate: this.selectedDate,\n selectionRange: this.props.selectionRange,\n viewDate: viewDate\n });\n return (React.createElement(React.Fragment, null,\n (this.isMonthView && this.isHorizontal) && (React.createElement(\"thead\", { role: \"rowgroup\", className: \"k-calendar-thead\" },\n React.createElement(\"tr\", { role: \"row\", className: \"k-calendar-tr\" }, weekNames.map(function (name, idx) { return (React.createElement(\"th\", { key: idx, className: \"k-calendar-th\" }, name)); })))),\n React.createElement(\"tbody\", { role: \"rowgroup\", className: \"k-calendar-tbody\" },\n !this.isHorizontal && (React.createElement(\"tr\", { role: \"presentation\", className: \"k-calendar-tr\" },\n React.createElement(\"th\", { scope: \"col\", colSpan: colSpan, className: \"k-calendar-th\" }, title))),\n data.map(function (row, idx) {\n return (React.createElement(\"tr\", { role: \"row\", className: \"k-calendar-tr\", key: idx },\n _this.weekNumber && _this.buildWeekNumber(row, idx),\n _this.buildRow(row)));\n }))));\n };\n View.prototype.getWeekNumber = function (date) {\n if (!this.weekNumber) {\n return null;\n }\n return weekInYear(date, this.intl.firstDay());\n };\n View.propTypes = {\n activeRangeEnd: PropTypes.oneOf(['start', 'end', null]),\n activeView: PropTypes.number.isRequired,\n cellUID: PropTypes.string.isRequired,\n direction: PropTypes.oneOf(['horizontal', 'vertical']),\n focusedDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onChange: PropTypes.func,\n selectedDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.arrayOf(PropTypes.instanceOf(Date))]),\n showWeekNumbers: PropTypes.bool,\n viewDate: PropTypes.instanceOf(Date).isRequired\n };\n View.defaultProps = {\n direction: 'vertical',\n selectedDate: getToday(),\n showWeekNumbers: false\n };\n return View;\n}(React.Component));\nexport { View };\nregisterForIntl(View);\n","var _a;\n/**\n * @hidden\n */\nexport var prevView = 'multiviewcalendar.prevView';\n/**\n * @hidden\n */\nexport var nextView = 'multiviewcalendar.nextView';\n/**\n * @hidden\n */\nexport var increaseValue = 'dateinput.increment';\n/**\n * @hidden\n */\nexport var decreaseValue = 'dateinput.decrement';\n/**\n * @hidden\n */\nexport var today = 'calendar.today';\n/**\n * @hidden\n */\nexport var toggleCalendar = 'datepicker.toggleCalendar';\n/**\n * @hidden\n */\nexport var swapStartEnd = 'daterangepicker.swapStartEnd';\n/**\n * @hidden\n */\nexport var start = 'daterangepicker.start';\n/**\n * @hidden\n */\nexport var end = 'daterangepicker.end';\n/**\n * @hidden\n */\nexport var separator = 'daterangepicker.separator';\n/**\n * @hidden\n */\nexport var toggleDateTimeSelector = 'datetimepicker.toggleDateTimeSelector';\n/**\n * @hidden\n */\nexport var now = 'timepicker.now';\n/**\n * @hidden\n */\nexport var selectNow = 'timepicker.selectNow';\n/**\n * @hidden\n */\nexport var timePickerCancel = 'timepicker.cancel';\n/**\n * @hidden\n */\nexport var timePickerSet = 'timepicker.set';\n/**\n * @hidden\n */\nexport var toggleTimeSelector = 'timepicker.toggleTimeSelector';\n/**\n * @hidden\n */\nexport var toggleClock = 'timepicker.toggleClock';\n/**\n * @hidden\n */\nexport var date = 'datetimepicker.date';\n/**\n * @hidden\n */\nexport var time = 'datetimepicker.time';\n/**\n * @hidden\n */\nexport var dateTimePickerCancel = 'datetimepicker.cancel';\n/**\n * @hidden\n */\nexport var dateTimePickerSet = 'datetimepicker.set';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[today] = 'TODAY',\n _a[now] = 'NOW',\n _a[timePickerSet] = 'Set',\n _a[timePickerCancel] = 'Cancel',\n _a[date] = 'Date',\n _a[time] = 'Time',\n _a[dateTimePickerCancel] = 'Cancel',\n _a[dateTimePickerSet] = 'Set',\n _a[start] = 'Start',\n _a[end] = 'End',\n _a[separator] = ' ',\n _a[selectNow] = 'Select Now',\n _a[toggleTimeSelector] = 'Toggle TimeSelector',\n _a[toggleClock] = 'Toggle Clock',\n _a[increaseValue] = 'Increase value',\n _a[decreaseValue] = 'Decrease value',\n _a[toggleCalendar] = 'Toggle calendar',\n _a[prevView] = 'Navigate to previous view',\n _a[nextView] = 'Navigate to next view',\n _a[swapStartEnd] = 'Swap start and end values',\n _a[toggleDateTimeSelector] = 'Toggle date-time selector',\n _a);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport { Button } from '@progress/kendo-react-buttons';\nimport * as React from 'react';\n/**\n * The `CalendarHeaderTitle` component is internally used for rendering the title of the current calendar view. Also used as a custom `headerTitle` for the [Calendar]({% slug api_dateinputs_calendarprops %}#toc-headertitle) and the [MultiViewCalendar]({% slug api_dateinputs_multiviewcalendarprops %}#toc-headertitle) components.\n *\n * * [Customizing the title for the current Calendar view]({% slug custom_rendering_calendar %}#toc-cells-inside-the-view)\n * * [Customizing the title for the current MultiViewCalendar view]({% slug custom_rendering_multiviewcalendar %}#toc-cells-inside-the-view)\n */\nvar CalendarHeaderTitle = /** @class */ (function (_super) {\n __extends(CalendarHeaderTitle, _super);\n function CalendarHeaderTitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @return\n * Returns a `` element with the [`value`]({% slug api_dateinputs_calendarheadertitleprops %}#toc-value) of the title as a child.\n */\n CalendarHeaderTitle.prototype.render = function () {\n var _a = this.props, view = _a.view, props = __rest(_a, [\"view\"]);\n return (React.createElement(Button, __assign({ type: \"button\", look: \"flat\" }, props), this.props.children));\n };\n return CalendarHeaderTitle;\n}(React.PureComponent));\nexport { CalendarHeaderTitle };\n","/**\n * @hidden\n */\nexport var MIDNIGHT_DATE = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MIN_DATE = new Date(1900, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_DATE = new Date(2099, 11, 31);\n/**\n * @hidden\n */\nexport var MIN_TIME = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_TIME = new Date(1980, 0, 1, 23, 59, 59);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { registerForLocalization } from '@progress/kendo-react-intl';\nimport { classNames } from '@progress/kendo-react-common';\nimport { CalendarHeaderTitle } from './CalendarHeaderTitle';\nimport { MIN_DATE, MAX_DATE } from '../../defaults';\n/**\n * @hidden\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.getTitle = function () {\n if (!_this.props.currentDate) {\n return '';\n }\n var take = _this.rangeLength - 1;\n var title = _this.props.service.title(_this.props.currentDate);\n var nextDate = _this.props.service.addToDate(_this.props.currentDate, take);\n if (take < 1 || !_this.props.service.isInRange(nextDate, _this.min, _this.max)) {\n return title;\n }\n return title + \" - \" + _this.props.service.title(nextDate);\n };\n _this.handleTitleClick = function (event) {\n if (!_this.canMoveUp) {\n return;\n }\n _this.props.bus.moveUp(_this.props.activeView, event);\n };\n return _this;\n }\n Object.defineProperty(Header.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : Header.defaultProps.min;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Header.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : Header.defaultProps.max;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Header.prototype, \"rangeLength\", {\n get: function () {\n return this.props.rangeLength !== undefined ? this.props.rangeLength : Header.defaultProps.rangeLength;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Header.prototype, \"canMoveUp\", {\n get: function () {\n return this.props.bus.canMoveUp(this.props.activeView);\n },\n enumerable: true,\n configurable: true\n });\n Header.prototype.render = function () {\n var title = this.getTitle();\n var titleClassNames = classNames('k-calendar-title');\n var headerTitleProps = {\n children: title,\n value: title,\n view: this.props.activeView,\n className: titleClassNames,\n onClick: this.handleTitleClick,\n disabled: !this.canMoveUp\n };\n var headerTitle = this.props.headerTitle\n ? React.createElement(this.props.headerTitle, __assign({}, headerTitleProps), title)\n : React.createElement(CalendarHeaderTitle, __assign({}, headerTitleProps), title);\n return (React.createElement(\"div\", { className: \"k-calendar-header k-hstack\" },\n headerTitle,\n React.createElement(\"span\", { className: \"k-spacer\" }),\n React.createElement(\"span\", { className: \"k-calendar-nav k-hstack\" }, this.props.commands)));\n };\n Header.propTypes = {\n activeView: PropTypes.number.isRequired,\n currentDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n rangeLength: PropTypes.number\n };\n Header.defaultProps = {\n rangeLength: 1,\n min: MIN_DATE,\n max: MAX_DATE\n };\n return Header;\n}(React.Component));\nexport { Header };\nregisterForLocalization(Header);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { classNames } from '@progress/kendo-react-common';\nimport { getDate } from '@progress/kendo-date-math';\nimport { messages, today } from '../../messages';\nimport { dateInRange, getToday, isInRange } from '../../utils';\nimport { MIN_DATE, MAX_DATE } from '../../defaults';\nvar TodayCommand = /** @class */ (function (_super) {\n __extends(TodayCommand, _super);\n function TodayCommand() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleClick = function (syntheticEvent) {\n if (!_this.todayIsInRange) {\n return;\n }\n if (_this.props.onClick) {\n _this.props.onClick.call(undefined, {\n syntheticEvent: syntheticEvent,\n nativeEvent: syntheticEvent.nativeEvent,\n value: dateInRange(getToday(), _this.min, _this.max),\n target: _this,\n isTodayClick: true\n });\n }\n };\n return _this;\n }\n Object.defineProperty(TodayCommand.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : TodayCommand.defaultProps.min;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TodayCommand.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : TodayCommand.defaultProps.max;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TodayCommand.prototype, \"todayIsInRange\", {\n get: function () {\n return isInRange(getToday(), getDate(this.min), getDate(this.max));\n },\n enumerable: true,\n configurable: true\n });\n TodayCommand.prototype.render = function () {\n this.localization = provideLocalizationService(this);\n var todayMessage = this.localization.toLanguageString(today, messages[today]);\n var todayClassNames = classNames('k-nav-today', {\n 'k-state-disabled': this.props.disabled\n });\n return (React.createElement(\"span\", { className: todayClassNames, onClick: this.handleClick }, todayMessage));\n };\n TodayCommand.propTypes = {\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onClick: PropTypes.func,\n disabled: PropTypes.bool\n };\n TodayCommand.defaultProps = {\n min: MIN_DATE,\n max: MAX_DATE\n };\n return TodayCommand;\n}(React.Component));\nexport { TodayCommand };\nregisterForLocalization(TodayCommand);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { cloneDate, getDate, isEqualDate } from '@progress/kendo-date-math';\nimport { registerForIntl, provideIntlService } from '@progress/kendo-react-intl';\nimport { Virtualization } from '../../virtualization/Virtualization';\nimport { View } from './View';\nimport { Header } from './Header';\nimport { dateInRange, getToday, isInRange, shiftWeekNames } from '../../utils';\nimport { CalendarViewEnum } from '../models';\nimport { TodayCommand } from './TodayCommand';\nvar VIEWS_COUNT = 5;\n/**\n * @hidden\n */\nvar ViewList = /** @class */ (function (_super) {\n __extends(ViewList, _super);\n function ViewList(props) {\n var _this = _super.call(this, props) || this;\n _this.isActive = false;\n _this.animateToIndex = true;\n _this.shouldScroll = false;\n _this.focusActiveDate = function () {\n if (!_this._element) {\n return;\n }\n var focusedCell = _this._element.querySelector('td.k-state-focused');\n var nextActiveCell = _this._element.querySelector('.k-state-pending-focus');\n if (focusedCell && focusedCell[0]) {\n focusedCell[0].classList.remove('k-state-focused');\n }\n if (nextActiveCell) {\n nextActiveCell.classList.add('k-state-focused');\n }\n _this.isActive = true;\n };\n _this.blurActiveDate = function () {\n if (!_this._element) {\n return;\n }\n var focusedCell = _this._element.querySelector('td.k-state-focused');\n if (focusedCell) {\n focusedCell.classList.remove('k-state-focused');\n }\n _this.isActive = false;\n };\n _this.handleVirtualizationMount = function (virtualization) {\n _this.virtualization = virtualization;\n if (_this.virtualization && _this.table) {\n _this.table.style.transform = \"translateY(\" + _this.viewOffset + \"px)\";\n var viewDate = dateInRange(_this.props.focusedDate, _this.props.min, _this.props.max);\n var indexToScroll = _this.props.service.skip(viewDate, _this.props.min);\n _this.virtualization.scrollToIndex(indexToScroll);\n }\n };\n _this.buildMonthView = function (cols, weekNames) {\n return (React.createElement(\"table\", { key: \"calendar-view-list-weekdays\", className: \"k-calendar-table k-calendar-weekdays\" },\n React.createElement(\"colgroup\", null, cols.map(function (_, idx) { return (React.createElement(\"col\", { key: idx })); })),\n React.createElement(\"thead\", { className: \"k-calendar-thead\" },\n React.createElement(\"tr\", { className: \"k-calendar-tr\" }, weekNames.map(function (name, idx) { return (React.createElement(\"th\", { key: idx, className: \"k-calendar-th\" }, name)); })))));\n };\n _this.buildDates = function (cols, dates) {\n var cellUID = _this.props.cellUID;\n return (React.createElement(\"table\", { className: \"k-calendar-table\", ref: function (table) { return _this.table = table; } },\n React.createElement(\"colgroup\", null, cols.map(function (_, idx) { return (React.createElement(\"col\", { key: idx })); })),\n dates.map(function (date) { return (React.createElement(View, { ref: function (el) { if (!_this.calendarView) {\n _this.calendarView = el;\n } }, key: date.getTime(), activeView: _this.props.activeView, viewDate: date, min: _this.props.min, max: _this.props.max, cellUID: cellUID, focusedDate: _this.props.focusedDate, cell: _this.props.cell, selectedDate: _this.props.value, showWeekNumbers: _this.weekNumber, onChange: _this.handleDateChange, bus: _this.props.bus, service: _this.props.service, weekCell: _this.props.weekCell })); })));\n };\n _this.calculateHeights = function () {\n if (!_this.props.dom) {\n return;\n }\n var scrollableHeight = _this.props.activeView === CalendarViewEnum.month ?\n _this.props.dom.scrollableContentHeight :\n _this.props.dom.scrollableYearContentHeight;\n _this.bottomOffset = scrollableHeight - _this.props.dom.viewHeight(_this.props.activeView);\n _this.viewOffset = -1 * _this.props.dom.headerHeight;\n _this.viewHeight = _this.props.dom.viewHeight(_this.props.activeView) || 1;\n };\n _this.getTake = function (skip, total) {\n return Math.min(total - skip, _this.take);\n };\n _this.handleScrollAction = function (_a) {\n var index = _a.index, scrollAction = _a.scrollAction, pageAction = _a.pageAction;\n var skip = pageAction ? pageAction.skip : _this.state.skip;\n if (_this.state.index !== index || _this.state.skip !== skip) {\n _this.setState({ index: index, skip: skip });\n }\n if (_this.table && scrollAction) {\n var translate = \"translateY(\" + scrollAction.offset + \"px)\";\n _this.table.style.transform = translate;\n }\n };\n _this.handleTodayClick = function (event) {\n _this.shouldScroll = true;\n _this.handleDateChange.call(undefined, event, true);\n };\n _this.handleDateChange = function (event, isTodayClick) {\n if (isTodayClick === void 0) { isTodayClick = false; }\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: cloneDate(event.value),\n target: _this,\n isTodayClick: isTodayClick\n };\n onChange.call(undefined, args);\n }\n };\n _this.lastView = _this.props.activeView;\n _this.lastFocus = _this.props.focusedDate;\n _this.state = {\n skip: _this.props.service.skip(_this.props.focusedDate, _this.props.min),\n index: _this.props.service.skip(_this.props.focusedDate, _this.props.min)\n };\n return _this;\n }\n Object.defineProperty(ViewList.prototype, \"element\", {\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"weekNames\", {\n get: function () {\n this.intl = provideIntlService(this);\n var weekNames = shiftWeekNames(this.intl.dateFormatNames({ nameType: 'short', type: 'days' }), this.intl.firstDay());\n return this.weekNumber ? [''].concat(weekNames) : weekNames;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"weekNumber\", {\n get: function () {\n return Boolean(this.props.showWeekNumbers && this.props.activeView === CalendarViewEnum.month);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"take\", {\n get: function () {\n return this.props.take !== undefined ? this.props.take : ViewList.defaultProps.take;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"animate\", {\n get: function () {\n return Boolean(this.props.smoothScroll && this.animateToIndex);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"todayIsInRange\", {\n get: function () {\n return isInRange(getToday(), getDate(this.props.min), getDate(this.props.max));\n },\n enumerable: true,\n configurable: true\n });\n ViewList.prototype.componentDidUpdate = function (_prevProps, _prevState) {\n this.shouldScroll = false;\n if (this.indexToScroll !== undefined && this.virtualization) {\n this.virtualization[this.animate ? 'animateToIndex' : 'scrollToIndex'](this.indexToScroll);\n }\n if (this.isActive) {\n this.focusActiveDate();\n }\n this.lastView = this.props.activeView;\n // this.lastFocus = this.props.focusedDate;\n this.indexToScroll = undefined;\n };\n ViewList.prototype.render = function () {\n var _this = this;\n this.calculateHeights();\n var didViewChange = this.lastView !== this.props.activeView;\n var focusedDate = dateInRange(this.props.focusedDate, this.props.min, this.props.max);\n var skip = !didViewChange ? this.state.skip : this.props.service.skip(focusedDate, this.props.min);\n var total = this.props.service.total(this.props.min, this.props.max);\n var take = this.getTake(skip, total);\n var viewDate = this.props.service.addToDate(this.props.min, skip);\n var activeDate = this.props.service.addToDate(this.props.min, this.state.index);\n var cols = new Array(this.props.service.rowLength(this.weekNumber)).fill('');\n var didViewChanged = this.props.activeView !== this.lastView;\n this.animateToIndex = !didViewChanged;\n if (didViewChanged\n || !isEqualDate(this.lastFocus, focusedDate)\n || this.shouldScroll\n || (!this.props.shouldScroll || this.props.shouldScroll())) {\n this.indexToScroll = this.props.service.skip(focusedDate, this.props.min);\n }\n this.lastFocus = focusedDate;\n var rootClassNames = classNames('k-calendar-view k-vstack', {\n 'k-calendar-monthview': this.props.activeView === CalendarViewEnum.month,\n 'k-calendar-yearview': this.props.activeView === CalendarViewEnum.year,\n 'k-calendar-decadeview': this.props.activeView === CalendarViewEnum.decade,\n 'k-calendar-centuryview': this.props.activeView === CalendarViewEnum.century\n });\n var dates = this.buildDates(cols, this.props.service.datesList(viewDate, take));\n var viewListBody = (React.createElement(React.Fragment, null,\n React.createElement(Header, { key: \"calendar-view-list-header\", currentDate: activeDate, min: this.props.min, max: this.props.max, activeView: this.props.activeView, bus: this.props.bus, service: this.props.service, headerTitle: this.props.headerTitle, commands: (React.createElement(React.Fragment, null,\n React.createElement(TodayCommand, { min: this.props.min, max: this.props.max, onClick: this.handleTodayClick, disabled: !this.todayIsInRange }))) }),\n this.props.activeView === CalendarViewEnum.month && this.buildMonthView(cols, this.weekNames),\n React.createElement(Virtualization, { key: \"calendar-view-list-content\", skip: skip, take: this.take, total: total, itemHeight: this.viewHeight, topOffset: this.viewOffset, bottomOffset: this.bottomOffset, scrollOffsetSize: this.viewOffset, maxScrollDifference: this.viewHeight, onScroll: this.props.onScroll, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount, children: dates })));\n return (React.createElement(\"div\", { ref: function (el) { _this._element = el; }, className: rootClassNames }, this.props.dom.didCalculate ? viewListBody : null));\n };\n ViewList.propTypes = {\n activeView: PropTypes.number.isRequired,\n bottomOffset: PropTypes.number,\n cellUID: PropTypes.string.isRequired,\n focusedDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onChange: PropTypes.func,\n showWeekNumbers: PropTypes.bool,\n smoothScroll: PropTypes.bool,\n take: PropTypes.number,\n value: PropTypes.instanceOf(Date),\n viewHeight: PropTypes.number,\n viewOffset: PropTypes.number\n };\n ViewList.defaultProps = {\n take: VIEWS_COUNT,\n showWeekNumbers: false,\n smoothScroll: true\n };\n return ViewList;\n}(React.Component));\nexport { ViewList };\nregisterForIntl(ViewList);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * The `CalendarNavigationItem` component is internally used for rendering the items in the side navigation of the Calendar. Also used as a custom navigation item for the [Calendar]({% slug api_dateinputs_calendarprops %}#toc-navigationitem) ([see example]({% slug custom_rendering_calendar %}#toc-items-in-the-side-navigation)).\n */\nvar CalendarNavigationItem = /** @class */ (function (_super) {\n __extends(CalendarNavigationItem, _super);\n function CalendarNavigationItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleClick = function (event) {\n var _a = _this.props, onClick = _a.onClick, value = _a.value;\n if (onClick) {\n onClick.call(undefined, value, event);\n }\n };\n return _this;\n }\n /**\n * @return\n * Returns a `
  • ` element with a `` inside. The text inside represents the [`value`]({% slug api_dateinputs_calendarnavigationitemprops %}#toc-value) of the `navigationItem`.\n */\n CalendarNavigationItem.prototype.render = function () {\n var _a = this.props, isRangeStart = _a.isRangeStart, value = _a.value, text = _a.text, other = __rest(_a, [\"isRangeStart\", \"value\", \"text\"]);\n return (React.createElement(\"li\", __assign({}, other, { onClick: this.handleClick }),\n React.createElement(\"span\", { className: classNames({ 'k-calendar-navigation-marker': isRangeStart }) }, this.props.children)));\n };\n return CalendarNavigationItem;\n}(React.Component));\nexport { CalendarNavigationItem };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { cloneDate, isEqual } from '@progress/kendo-date-math';\nimport { CalendarNavigationItem } from './CalendarNavigationItem';\nimport { dateInRange } from '../../utils';\nimport { Virtualization } from '../../virtualization/Virtualization';\nvar ITEMS_COUNT = 30;\n/**\n * @hidden\n */\nvar Navigation = /** @class */ (function (_super) {\n __extends(Navigation, _super);\n function Navigation(props) {\n var _this = _super.call(this, props) || this;\n _this.topOffset = 0;\n _this.handleVirtualizationMount = function (virtualization) {\n _this.virtualization = virtualization;\n if (_this.virtualization && _this.list) {\n _this.list.style.transform = \"translateY(\" + _this.topOffset + \"px)\";\n var viewDate = dateInRange(_this.props.focusedDate, _this.props.min, _this.props.max);\n var indexToScroll = _this.props.service.skip(viewDate, _this.props.min);\n _this.virtualization.scrollToIndex(indexToScroll);\n }\n };\n _this.buildNavigationItem = function (date) {\n var text = _this.props.service.navigationTitle(date);\n var isRangeStart = _this.props.service.isRangeStart(date);\n var uniqueID = \"kendo-react-calendar-nav-item-\" + date.getTime();\n var navigationItemProps = {\n text: text,\n value: date,\n isRangeStart: isRangeStart,\n view: _this.props.activeView,\n onClick: _this.handleDateChange\n };\n return _this.props.navigationItem\n ? (React.createElement(_this.props.navigationItem, __assign({}, navigationItemProps, { key: uniqueID }), text))\n : (React.createElement(CalendarNavigationItem, __assign({}, navigationItemProps, { key: uniqueID }), text));\n };\n _this.calculateHeights = function () {\n var calendarHeight = _this.props.dom.calendarHeight;\n _this.itemHeight = _this.props.dom.navigationItemHeight || 1;\n _this.maxViewHeight = _this.props.dom.monthViewHeight;\n _this.topOffset = (calendarHeight - _this.itemHeight) / 2;\n _this.bottomOffset = calendarHeight - _this.itemHeight;\n };\n _this.handleDateChange = function (value, event) {\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n value: cloneDate(value),\n target: _this,\n nativeEvent: event && event.nativeEvent,\n syntheticEvent: event\n };\n onChange.call(undefined, args);\n }\n };\n _this.handleScrollAction = function (_a) {\n var scrollAction = _a.scrollAction, pageAction = _a.pageAction;\n var skip = pageAction ? pageAction.skip : _this.state.skip;\n if (_this.state.skip !== skip) {\n _this.setState({ skip: skip });\n }\n if (_this.list && scrollAction) {\n var translate = \"translateY(\" + scrollAction.offset + \"px)\";\n _this.list.style.transform = translate;\n }\n };\n _this.lastView = _this.props.activeView;\n _this.lastFocus = _this.props.focusedDate;\n var skip = _this.props.service.skip(_this.props.focusedDate, _this.props.min);\n var total = _this.props.service.total(_this.props.min, _this.props.max);\n _this.state = {\n skip: (skip - _this.getTake(skip, total) > 0) ? skip : 0\n };\n return _this;\n }\n Object.defineProperty(Navigation.prototype, \"take\", {\n get: function () {\n return this.props.take !== undefined\n ? this.props.take\n : Navigation.defaultProps.take;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n Navigation.prototype.componentDidUpdate = function (_prevProps, _prevState) {\n if (this.indexToScroll !== undefined && this.virtualization) {\n this.virtualization.scrollToIndex(this.indexToScroll);\n }\n this.lastView = this.props.activeView;\n this.lastFocus = this.props.focusedDate;\n this.indexToScroll = undefined;\n };\n Navigation.prototype.render = function () {\n var _this = this;\n this.calculateHeights();\n var didViewChange = this.lastView !== this.props.activeView;\n var focusedDate = dateInRange(this.props.focusedDate, this.props.min, this.props.max);\n var skip = !didViewChange ? this.state.skip : this.props.service.skip(focusedDate, this.props.min);\n var total = this.props.service.total(this.props.min, this.props.max);\n var take = this.getTake(skip, total);\n var viewDate = this.props.service.addToDate(this.props.min, skip);\n var dates = this.props.service.datesList(viewDate, take);\n if (this.props.activeView !== this.lastView\n || !isEqual(focusedDate, this.lastFocus)) {\n this.indexToScroll = this.props.service.skip(focusedDate, this.props.min);\n }\n var navigationBody = (React.createElement(Virtualization, { skip: skip, take: this.take, total: total, itemHeight: this.itemHeight, topOffset: this.topOffset, bottomOffset: this.bottomOffset, onScroll: this.props.onScroll, maxScrollDifference: this.maxViewHeight, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount },\n React.createElement(\"ul\", { ref: function (el) { _this.list = el; }, className: \"k-reset\" }, dates.map(function (date) { return (_this.buildNavigationItem(date)); }))));\n return (React.createElement(\"div\", { className: \"k-calendar-navigation\" },\n React.createElement(\"span\", { className: \"k-calendar-navigation-highlight\" }),\n this.props.dom.didCalculate ? navigationBody : null));\n };\n Navigation.prototype.getTake = function (skip, total) {\n return Math.min(total - skip, this.take);\n };\n Navigation.propTypes = {\n activeView: PropTypes.number.isRequired,\n focusedDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onChange: PropTypes.func,\n take: PropTypes.number\n };\n Navigation.defaultProps = {\n take: ITEMS_COUNT\n };\n return Navigation;\n}(React.Component));\nexport { Navigation };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, guid, Keys } from '@progress/kendo-react-common';\nimport { cloneDate, getDate, isEqualDate } from '@progress/kendo-date-math';\nimport { provideIntlService, registerForIntl } from '@progress/kendo-react-intl';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../../package-metadata';\nimport { ViewList } from './ViewList';\nimport { Navigation } from './Navigation';\nimport { MIN_DATE, MAX_DATE } from '../../defaults';\nimport { CalendarViewEnum } from '../models';\nimport { getToday, dateInRange, isInRange, viewInRange } from '../../utils';\nimport { BusViewService, DOMService, ScrollSyncService, NavigationService } from '../services';\nvar virtualizationProp = function (x) { return x ? x.virtualization : null; };\nvar calculateValue = function (min, max, stateValue, propValue) {\n if (min === void 0) { min = Calendar.defaultProps.min; }\n if (max === void 0) { max = Calendar.defaultProps.max; }\n return propValue !== undefined\n ? propValue !== null && isInRange(getDate(propValue), min, max)\n ? propValue\n : null\n : stateValue !== null && isInRange(getDate(stateValue), min, max)\n ? stateValue\n : null;\n};\nvar Calendar = /** @class */ (function (_super) {\n __extends(Calendar, _super);\n function Calendar(props) {\n var _this = _super.call(this, props) || this;\n _this.cellUID = guid();\n _this.id = guid();\n _this.isActive = false;\n _this.didNavigationChange = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._element) {\n _this._element.focus();\n }\n };\n _this.shouldScroll = function () { return _this.didNavigationChange; };\n _this.handleScroll = function (event) {\n if (!_this.scrollSyncService) {\n return;\n }\n _this.scrollSyncService.sync(virtualizationProp(_this.Navigation), virtualizationProp(_this.calendarViewList), event);\n };\n _this.handleNavigationChange = function (event) {\n if (_this.props.disabled) {\n return;\n }\n _this.didNavigationChange = true;\n var focusedDate = cloneDate(event.value);\n _this.setState({ focusedDate: focusedDate });\n };\n _this.handleViewChange = function (_a) {\n var view = _a.view;\n _this.scrollSyncService.configure(view);\n _this.setState({ activeView: view });\n };\n _this.handleDateChange = function (event) {\n var value = cloneDate(event.value);\n var focusedDate = cloneDate(event.value);\n var canNavigateDown = _this.bus.canMoveDown(_this.state.activeView);\n if (_this.props.disabled) {\n return;\n }\n if (canNavigateDown) {\n if (event.isTodayClick) {\n _this.bus.moveToBottom(_this.state.activeView);\n }\n else {\n _this.bus.moveDown(_this.state.activeView, event.syntheticEvent);\n _this.setState({ focusedDate: focusedDate });\n return;\n }\n }\n _this.setState({ value: value, focusedDate: focusedDate });\n _this.valueDuringOnChange = value;\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: value,\n target: _this\n };\n onChange.call(undefined, args);\n }\n _this.valueDuringOnChange = undefined;\n };\n _this.handleFocus = function (event) {\n _this.isActive = true;\n if (!_this.calendarViewList) {\n return;\n }\n _this.calendarViewList.focusActiveDate();\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus.call(undefined, event);\n }\n };\n _this.handleBlur = function (event) {\n _this.isActive = false;\n if (!_this.calendarViewList) {\n return;\n }\n _this.calendarViewList.blurActiveDate();\n var onBlur = _this.props.onBlur;\n if (onBlur) {\n onBlur.call(undefined, event);\n }\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode;\n if (keyCode === Keys.enter) {\n if (_this.value !== null\n && isEqualDate(_this.focusedDate, _this.value)) {\n var viewDate = dateInRange(_this.focusedDate, _this.min, _this.max);\n virtualizationProp(_this.calendarViewList).scrollToIndex(_this.service.skip(viewDate, _this.min));\n }\n var args = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: _this.focusedDate,\n target: _this\n };\n _this.handleDateChange.call(undefined, args);\n }\n else {\n var candidate = dateInRange(_this.navigation.move(_this.focusedDate, _this.navigation.action(event), _this.state.activeView, _this.service, event), _this.min, _this.max);\n if (isEqualDate(_this.focusedDate, candidate)) {\n return;\n }\n _this.setState({ focusedDate: candidate });\n }\n event.preventDefault();\n };\n _this.handleMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleClick = function (_) {\n if (_this._element) {\n _this._element.focus({ preventScroll: true });\n }\n };\n validatePackage(packageMetadata);\n var value = calculateValue(_this.min, _this.max, _this.props.defaultValue || Calendar.defaultProps.defaultValue, _this.props.value);\n _this.state = {\n value: value,\n activeView: viewInRange(CalendarViewEnum[props.defaultActiveView], _this.bottomView, _this.topView),\n focusedDate: dateInRange(props.focusedDate\n || value\n || getToday(), _this.min, _this.max)\n };\n _this.dom = new DOMService();\n _this.bus = new BusViewService(_this.handleViewChange);\n _this.navigation = new NavigationService(_this.bus);\n _this.oldValue = value;\n return _this;\n }\n Object.defineProperty(Calendar.prototype, \"element\", {\n /**\n * Gets the wrapping element of the Calendar.\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"value\", {\n /**\n * Gets the value of the Calendar.\n */\n get: function () {\n return this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"min\", {\n get: function () {\n return getDate(this.props.min !== undefined\n ? this.props.min\n : Calendar.defaultProps.min);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"max\", {\n get: function () {\n return getDate(this.props.max !== undefined\n ? this.props.max\n : Calendar.defaultProps.max);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"bottomView\", {\n get: function () {\n return CalendarViewEnum[this.props.bottomView !== undefined\n ? this.props.bottomView\n : Calendar.defaultProps.bottomView];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Calendar.prototype, \"topView\", {\n get: function () {\n return CalendarViewEnum[this.props.topView !== undefined\n ? this.props.topView\n : Calendar.defaultProps.topView];\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n Calendar.prototype.componentDidMount = function () {\n var _this = this;\n // Async calculation of height to avoid animation cancellation\n Promise.resolve().then(function () {\n if (!_this._element) {\n return;\n }\n _this.dom.calculateHeights(_this._element);\n _this.scrollSyncService = new ScrollSyncService(_this.dom);\n _this.scrollSyncService.configure(_this.state.activeView);\n _this.forceUpdate();\n });\n };\n /**\n * @hidden\n */\n Calendar.prototype.componentDidUpdate = function (_, prevState) {\n if (prevState.activeView !== this.state.activeView) {\n this.scrollSyncService.configure(this.state.activeView);\n }\n if (this.calendarViewList) {\n (this.isActive ? this.calendarViewList.focusActiveDate : this.calendarViewList.blurActiveDate)();\n }\n this.didNavigationChange = false;\n this.oldValue = this.value;\n };\n /**\n * @hidden\n */\n Calendar.prototype.render = function () {\n var _this = this;\n if (this.props._ref) {\n this.props._ref(this);\n }\n var didValueChange = this.value !== null && this.oldValue !== null\n ? !isEqualDate(this.value, this.oldValue)\n : this.value !== this.oldValue;\n var activeView = viewInRange(this.state.activeView, CalendarViewEnum[this.props.bottomView !== undefined\n ? this.props.bottomView\n : Calendar.defaultProps.bottomView], CalendarViewEnum[this.props.topView !== undefined\n ? this.props.topView\n : Calendar.defaultProps.topView]);\n var value = calculateValue(this.min, this.max, this.value, this.value);\n var sanitizedValue = value ? getDate(value) : null;\n this.focusedDate = getDate(dateInRange(didValueChange && value !== null\n ? value\n : this.state.focusedDate, this.min, this.max));\n this.intl = provideIntlService(this);\n this.bus.configure(this.bottomView, this.topView);\n this.service = this.bus.service(activeView, this.intl);\n var rootClassNames = classNames('k-widget k-calendar k-calendar-infinite', {\n 'k-state-disabled': this.props.disabled,\n 'k-week-number': this.props.weekNumber\n }, this.props.className);\n var aria = {\n 'aria-disabled': this.props.disabled,\n 'aria-activedescendant': this.cellUID + this.focusedDate.getTime()\n };\n var calendarBody = [this.props.navigation && (React.createElement(Navigation, { key: 0, ref: function (el) { _this.Navigation = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, onScroll: this.handleScroll, onChange: this.handleNavigationChange, service: this.service, dom: this.dom, navigationItem: this.props.navigationItem })), (React.createElement(ViewList, { key: 1, ref: function (el) { _this.calendarViewList = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, bus: this.bus, shouldScroll: this.shouldScroll, onScroll: this.handleScroll, service: this.service, cell: this.props.cell, weekCell: this.props.weekCell, dom: this.dom, smoothScroll: this.props.smoothScroll, showWeekNumbers: this.props.weekNumber, onChange: this.handleDateChange, value: sanitizedValue, cellUID: this.cellUID, headerTitle: this.props.headerTitle }))];\n return (React.createElement(\"div\", __assign({}, aria, { ref: function (el) { _this._element = el; }, className: rootClassNames, id: this.props.id || this.id, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, role: \"grid\", tabIndex: !this.props.disabled ? this.props.tabIndex || 0 : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, onMouseDown: this.handleMouseDown, onClick: this.handleClick }), calendarBody));\n };\n /**\n * @hidden\n */\n Calendar.propTypes = {\n className: PropTypes.string,\n defaultActiveView: PropTypes.oneOf(['month', 'year', 'decade', 'century']),\n defaultValue: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n focusedDate: PropTypes.instanceOf(Date),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n navigation: PropTypes.bool,\n smoothScroll: PropTypes.bool,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n tabIndex: PropTypes.number,\n value: PropTypes.instanceOf(Date),\n weekNumber: PropTypes.bool,\n topView: function (props, propName, componentName) {\n var prop = props[propName];\n var bottomView = props.bottomView;\n if (prop && bottomView && CalendarViewEnum[prop] < CalendarViewEnum[bottomView]) {\n return new Error(\"Invalid prop + \" + propName + \" suplied to \" + componentName + \".\\n \" + propName + \" can not be smaller than bottomView.\\n \");\n }\n return null;\n },\n bottomView: function (props, propName, componentName) {\n var prop = props[propName];\n var topView = props.topView;\n if (prop && topView && CalendarViewEnum[prop] > CalendarViewEnum[topView]) {\n return new Error(\"Invalid prop + \" + propName + \" suplied to \" + componentName + \".\\n \" + propName + \" can not be bigger than topView.\\n \");\n }\n return null;\n }\n };\n /**\n * @hidden\n */\n Calendar.defaultProps = {\n disabled: false,\n min: MIN_DATE,\n max: MAX_DATE,\n navigation: true,\n defaultActiveView: 'month',\n defaultValue: null,\n smoothScroll: true,\n topView: 'century',\n bottomView: 'month'\n };\n return Calendar;\n}(React.Component));\nexport { Calendar };\nregisterForIntl(Calendar);\n","/**\n * @hidden\n */\nvar Mask = /** @class */ (function () {\n function Mask() {\n this.symbols = '';\n }\n return Mask;\n}());\nexport { Mask };\n","/**\n * @hidden\n */\nexport var defaultFormat = 'd';\n/**\n * @hidden\n */\nexport var defaultFormatPlaceholder = 'wide';\n/**\n * @hidden\n */\nexport var padZero = function (length) { return new Array(Math.max(length, 0)).fill('0').join(''); };\n/**\n * @hidden\n */\nexport var approximateStringMatching = function (oldTextOrigin, oldFormat, newTextOrigin, selectionStart) {\n /*\n Remove the right part of the cursor.\n oldFormat = oldFormat.substring(0, caret + oldText.length - newText.length);\n */\n var oldTextSeparator = oldTextOrigin[selectionStart + oldTextOrigin.length - newTextOrigin.length];\n var oldText = oldTextOrigin.substring(0, selectionStart + oldTextOrigin.length - newTextOrigin.length);\n var newText = newTextOrigin.substring(0, selectionStart);\n var diff = [];\n /* Handle the typing of a single character over the same selection. */\n if (oldText === newText && selectionStart > 0) {\n diff.push([oldFormat[selectionStart - 1], newText[selectionStart - 1]]);\n return diff;\n }\n if (oldText.indexOf(newText) === 0 &&\n (newText.length === 0 || oldFormat[newText.length - 1] !== oldFormat[newText.length])) {\n /* Handle Delete/Backspace. */\n var deletedSymbol = '';\n /*\n The whole text is replaced by the same character.\n A nasty patch is required to keep the selection in the first segment.\n */\n if (newText.length === 1) {\n diff.push([oldFormat[0], newText[0]]);\n }\n for (var i = newText.length; i < oldText.length; i++) {\n if (oldFormat[i] !== deletedSymbol && oldFormat[i] !== '_') {\n deletedSymbol = oldFormat[i];\n diff.push([deletedSymbol, '']);\n }\n }\n return diff;\n }\n /*\n Handle the insertion of the text (the new text is longer than the previous one).\n Handle the typing over a literal as well.\n */\n if (newText.indexOf(oldText) === 0 || oldFormat[selectionStart - 1] === '_') {\n var symbol = oldFormat[0];\n for (var i = Math.max(0, oldText.length - 1); i < oldFormat.length; i++) {\n if (oldFormat[i] !== '_') {\n symbol = oldFormat[i];\n break;\n }\n }\n return [[symbol, newText[selectionStart - 1]]];\n }\n /* Handle the entering of a space or a separator for navigating to the next item. */\n if (newText[newText.length - 1] === ' ' || newText[newText.length - 1] === oldTextSeparator) {\n return [[oldFormat[selectionStart - 1], '_']];\n }\n /* Handle typing over a correctly selected part. */\n return [[oldFormat[selectionStart - 1], newText[selectionStart - 1]]];\n};\n/**\n * @hidden\n */\nexport var dateSymbolMap = function (map, part) { map[part.pattern[0]] = part.type; return map; };\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) { return (candidate === null || !((min && min > candidate) || (max && max < candidate))); };\n/**\n * @hidden\n */\nexport var invalidClasses = ['k-state-invalid'];\n/** @hidden */\nexport var wrapperClasses = ['k-widget', 'k-dateinput'];\n","import { addMonths, cloneDate, createDate, isEqual, getDate, lastDayOfMonth } from '@progress/kendo-date-math';\nimport { Mask } from './mask';\nimport { dateSymbolMap } from './../utils';\n/**\n * @hidden\n */\nvar KendoDate = /** @class */ (function () {\n function KendoDate(intlProvider, formatPlaceholder, format) {\n this.year = true;\n this.month = true;\n this.date = true;\n this.hours = true;\n this.minutes = true;\n this.seconds = true;\n this.milliseconds = true;\n this.leadingZero = null;\n this.typedMonthPart = '';\n this.knownParts = 'adHhmMsEy';\n this.symbols = {\n 'E': 'E',\n 'H': 'H',\n 'M': 'M',\n 'a': 'a',\n 'd': 'd',\n 'h': 'h',\n 'm': 'm',\n 's': 's',\n 'y': 'y'\n };\n this._value = getDate(new Date());\n this.intlProvider = intlProvider;\n this.formatPlaceholder = formatPlaceholder;\n this.format = format;\n this.monthNames = this.allFormatedMonths();\n }\n Object.defineProperty(KendoDate.prototype, \"intl\", {\n get: function () {\n return this.intlProvider();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(KendoDate.prototype, \"value\", {\n get: function () {\n return this._value;\n },\n enumerable: true,\n configurable: true\n });\n KendoDate.prototype.setValue = function (value) {\n if (!value) {\n this._value = getDate(new Date());\n this.modifyExisting(false);\n }\n else if (!isEqual(value, this._value)) {\n this._value = cloneDate(value);\n this.modifyExisting(true);\n }\n };\n KendoDate.prototype.hasValue = function () {\n var _this = this;\n var pred = function (a, p) { return a || p.type !== 'literal' && p.type !== 'dayperiod' && _this.getExisting(p.pattern[0]); };\n return this.intl.splitDateFormat(this.format).reduce(pred, false);\n };\n KendoDate.prototype.getDateObject = function () {\n for (var i = 0; i < this.knownParts.length; i++) {\n if (!this.getExisting(this.knownParts[i])) {\n return null;\n }\n }\n return cloneDate(this.value);\n };\n KendoDate.prototype.getTextAndFormat = function () {\n return this.merge(this.intl.formatDate(this.value, this.format), this.dateFormatString(this.value, this.format));\n };\n KendoDate.prototype.modifyExisting = function (value) {\n var sampleFormat = this.dateFormatString(this.value, this.format).symbols;\n for (var i = 0; i < sampleFormat.length; i++) {\n this.setExisting(sampleFormat[i], value);\n }\n };\n KendoDate.prototype.getExisting = function (symbol) {\n switch (symbol) {\n case 'y': return this.year;\n case 'M':\n case 'L': return this.month;\n case 'd': return this.date;\n case 'E': return this.date && this.month && this.year;\n case 'h':\n case 'H': return this.hours;\n case 'm': return this.minutes;\n case 's': return this.seconds;\n default: return true;\n }\n };\n KendoDate.prototype.setExisting = function (symbol, value) {\n switch (symbol) {\n case 'y':\n // allow 2/29 dates\n this.year = value;\n if (value === false) {\n this._value.setFullYear(2000);\n }\n break;\n case 'M':\n // make sure you can type 31 in the day part\n this.month = value;\n if (value === false) {\n this._value.setMonth(0);\n }\n break;\n case 'd':\n this.date = value;\n break;\n case 'h':\n case 'H':\n this.hours = value;\n break;\n case 'm':\n this.minutes = value;\n break;\n case 's':\n this.seconds = value;\n break;\n default: return;\n }\n };\n KendoDate.prototype.modifyPart = function (symbol, offset) {\n var newValue = cloneDate(this.value);\n switch (symbol) {\n case 'y':\n newValue.setFullYear(newValue.getFullYear() + offset);\n break;\n case 'M':\n newValue = addMonths(this.value, offset);\n break;\n case 'd':\n case 'E':\n newValue.setDate(newValue.getDate() + offset);\n break;\n case 'h':\n case 'H':\n newValue.setHours(newValue.getHours() + offset);\n break;\n case 'm':\n newValue.setMinutes(newValue.getMinutes() + offset);\n break;\n case 's':\n newValue.setSeconds(newValue.getSeconds() + offset);\n break;\n case 'a':\n newValue.setHours(newValue.getHours() + (12 * offset));\n break;\n default: break;\n }\n this.setExisting(symbol, true);\n this._value = newValue;\n };\n KendoDate.prototype.parsePart = function (symbol, currentChar) {\n var _a;\n this.resetLeadingZero();\n if (!currentChar) {\n this.setExisting(symbol, false);\n return { value: null };\n }\n var baseDate = this.intl.formatDate(this.value, this.format);\n var dateParts = this.dateFormatString(this.value, this.format);\n var baseFormat = dateParts.symbols;\n var replaced = false;\n var prefix = '';\n var current = '';\n var suffix = '';\n for (var i = 0; i < baseDate.length; i++) {\n if (baseFormat[i] === symbol) {\n current += this.getExisting(symbol) ? baseDate[i] : '0';\n replaced = true;\n }\n else if (!replaced) {\n prefix += baseDate[i];\n }\n else {\n suffix += baseDate[i];\n }\n }\n var parsedDate = null;\n var month = this.matchMonth(currentChar);\n while (current.length > 0 && current.charAt(0) === '0') {\n current = current.slice(1);\n }\n if (current.length >= 4) {\n current = '';\n }\n for (var i = 0; i < 2; i++) {\n var middle = current + currentChar;\n var middleNumber = parseInt(middle, 10);\n parsedDate = this.intl.parseDate(prefix + middle + suffix, this.format);\n if (!parsedDate && !isNaN(middleNumber) && !isNaN(parseInt(currentChar, 10))) {\n if (symbol === 'M' && !month) {\n var monthNumber = middleNumber - 1;\n if (monthNumber > -1 && monthNumber < 12) {\n parsedDate = cloneDate(this.value);\n parsedDate.setMonth(monthNumber);\n if (parsedDate.getMonth() !== monthNumber) {\n parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));\n }\n }\n }\n if (symbol === 'y') {\n parsedDate = createDate(parseInt(middle, 10), this.month ? this.value.getMonth() : 0, this.date ? this.value.getDate() : 1, this.hours ? this.value.getHours() : 0, this.minutes ? this.value.getMinutes() : 0, this.seconds ? this.value.getSeconds() : 0, this.milliseconds ? this.value.getMilliseconds() : 0);\n if (this.date && parsedDate.getDate() !== this.value.getDate()) {\n parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));\n }\n }\n }\n if (parsedDate) {\n this._value = parsedDate;\n this.setExisting(symbol, true);\n return { value: this.value };\n }\n current = '';\n }\n if (month) {\n parsedDate = this.intl.parseDate(prefix + month + suffix, this.format);\n if (parsedDate) {\n this._value = parsedDate;\n this.setExisting(symbol, true);\n return { value: this.value };\n }\n }\n if (currentChar === '0') {\n this.leadingZero = !this.isAbbrMonth(dateParts.partMap, symbol) ? (_a = {}, _a[symbol] = true, _a) : null;\n this.setExisting(symbol, false);\n }\n return { value: null };\n };\n KendoDate.prototype.symbolMap = function (symbol) {\n return this.intl.splitDateFormat(this.format).reduce(dateSymbolMap, {})[symbol];\n };\n KendoDate.prototype.resetLeadingZero = function () {\n var hasLeadingZero = this.leadingZero !== null;\n this.leadingZero = null;\n return hasLeadingZero;\n };\n KendoDate.prototype.isAbbrMonth = function (parts, symbol) {\n var pattern = this.partPattern(parts, symbol);\n return pattern.type === 'month' && pattern.names;\n };\n KendoDate.prototype.partPattern = function (parts, symbol) {\n return parts.filter(function (part) { return part.pattern.indexOf(symbol) !== -1; })[0];\n };\n KendoDate.prototype.matchMonth = function (typedChar) {\n this.typedMonthPart += typedChar.toLowerCase();\n if (this.monthNames.length === 0) {\n return '';\n }\n while (this.typedMonthPart.length > 0) {\n for (var i = 0; i < this.monthNames.length; i++) {\n if (this.monthNames[i].toLowerCase().indexOf(this.typedMonthPart) === 0) {\n return this.monthNames[i];\n }\n }\n var monthAsNum = parseInt(this.typedMonthPart, 10);\n /* ensure they exact match */\n if (monthAsNum >= 1 && monthAsNum <= 12 && monthAsNum.toString() === this.typedMonthPart) {\n return this.monthNames[monthAsNum - 1];\n }\n this.typedMonthPart = this.typedMonthPart.substring(1, this.typedMonthPart.length);\n }\n return '';\n };\n KendoDate.prototype.allFormatedMonths = function () {\n var dateFormatParts = this.intl.splitDateFormat(this.format);\n for (var i = 0; i < dateFormatParts.length; i++) {\n if (dateFormatParts[i].type === 'month' && dateFormatParts[i].names) {\n return this.intl.dateFormatNames(dateFormatParts[i].names);\n }\n }\n return [];\n };\n KendoDate.prototype.dateFormatString = function (date, format) {\n var dateFormatParts = this.intl.splitDateFormat(format);\n var parts = [];\n var partMap = [];\n for (var i = 0; i < dateFormatParts.length; i++) {\n var partLength = this.intl.formatDate(date, { pattern: dateFormatParts[i].pattern }).length;\n while (partLength > 0) {\n parts.push(this.symbols[dateFormatParts[i].pattern[0]] || '_');\n partMap.push(dateFormatParts[i]);\n partLength--;\n }\n }\n var returnValue = new Mask();\n returnValue.symbols = parts.join('');\n returnValue.partMap = partMap;\n return returnValue;\n };\n KendoDate.prototype.merge = function (text, mask) {\n // Important: right to left.\n var resultText = '';\n var resultFormat = '';\n var format = mask.symbols;\n for (var r = format.length - 1; r >= 0; r--) {\n if (this.knownParts.indexOf(format[r]) === -1 || this.getExisting(format[r])) {\n resultText = text[r] + resultText;\n resultFormat = format[r] + resultFormat;\n }\n else {\n var currentSymbol = format[r];\n while (r >= 0 && currentSymbol === format[r]) {\n r--;\n }\n r++;\n if (this.leadingZero && this.leadingZero[currentSymbol]) {\n resultText = '0' + resultText;\n }\n else {\n resultText = this.dateFieldName(mask.partMap[r]) + resultText;\n }\n while (resultFormat.length < resultText.length) {\n resultFormat = format[r] + resultFormat;\n }\n }\n }\n return { text: resultText, format: resultFormat };\n };\n KendoDate.prototype.dateFieldName = function (part) {\n var formatPlaceholder = this.formatPlaceholder || 'wide';\n if (formatPlaceholder[part.type]) {\n return formatPlaceholder[part.type];\n }\n if (formatPlaceholder === 'formatPattern') {\n return part.pattern;\n }\n return this.intl.dateFieldName(Object.assign(part, { nameType: formatPlaceholder }));\n };\n return KendoDate;\n}());\nexport { KendoDate };\n","/**\n * @hidden\n */\nexport var TIME_PART = {\n dayperiod: 'dayperiod',\n hour: 'hour',\n millisecond: 'millisecond',\n minute: 'minute',\n second: 'second'\n};\n","import { cloneDate, addDays } from '@progress/kendo-date-math';\nimport { TIME_PART } from './models/TimePart';\nimport { MIDNIGHT_DATE, setTime } from '../utils';\nvar setter = function (method) { return function (date, value) {\n var clone = cloneDate(date);\n clone[method](value);\n return clone;\n}; };\nvar defaultGetters = [\n { type: TIME_PART.hour, getter: function (value) { return value.getHours(); } },\n { type: TIME_PART.minute, getter: function (value) { return value.getMinutes(); } },\n { type: TIME_PART.second, getter: function (value) { return value.getSeconds(); } },\n { type: TIME_PART.millisecond, getter: function (value) { return value.getMilliseconds(); } }\n];\nvar left = function (getter) { return function (origin, _) { return getter(origin); }; };\nvar right = function (getter) { return function (_, candidate) { return getter(candidate); }; };\nvar convertToObject = function (parts) { return parts.reduce(function (obj, p) { obj[p.type] = p.type; return obj; }, {}); };\nvar getterByPart = function (parts) { return function (g) { return parts[g.type] ? right(g.getter) : left(g.getter); }; };\nvar gettersFactory = function (getters) { return function (parts) { return (getters.map(getterByPart(convertToObject(parts)))); }; };\nvar snapValue = function (getter, step, min, type) { return function (date) {\n var value = getter(date);\n var minValue = getter(min);\n if (type === 'hour') {\n return value - ((value - minValue) % step);\n }\n if (date.getTime() <= min.getTime()\n && value !== 0\n && value <= minValue) {\n return (Math.ceil(value / step)) * step;\n }\n return value - (value % step);\n}; };\nvar snappersFactory = function (getters) { return function (steps, min) { return (getters.map(function (g) {\n var step = Math.floor(steps[g.type]);\n return step ? snapValue(g.getter, step, min, g.type) : g.getter;\n})); }; };\n/**\n * @hidden\n */\nexport var generateGetters = gettersFactory(defaultGetters);\n/**\n * @hidden\n */\nexport var generateSnappers = snappersFactory(defaultGetters);\n/**\n * @hidden\n */\nexport var valueMerger = function (getters) { return function (origin, candidate) {\n origin.setHours.apply(origin, getters.map(function (g) { return g(origin, candidate); }));\n return origin;\n}; };\n/**\n * @hidden\n */\nexport var snapTime = function (snappers) { return function (candidate) {\n var date = cloneDate(candidate);\n date.setHours.apply(date, snappers.map(function (s) { return s(date); }));\n return date;\n}; };\n/**\n * @hidden\n */\nexport var setHours = setter('setHours');\n/**\n * @hidden\n */\nexport var setMinutes = setter('setMinutes');\n/**\n * @hidden\n */\nexport var setSeconds = setter('setSeconds');\n/**\n * @hidden\n */\nexport var getNow = function () { return new Date(); };\n/**\n * @hidden\n */\nexport var range = function (start, end, step) {\n if (step === void 0) { step = 1; }\n var result = [];\n for (var i = start; i < end; i = i + step) {\n result.push(i);\n }\n return result;\n};\nvar normalizeTimes = function (candidate, min, max) { return ({\n candidateValue: setTime(MIDNIGHT_DATE, candidate),\n maxValue: addDays(setTime(MIDNIGHT_DATE, max), min.getHours() < max.getHours() ? 0 : 1),\n minValue: setTime(MIDNIGHT_DATE, min)\n}); };\n/**\n * @hidden\n */\nexport var timeInRange = function (candidate, min, max) {\n if (!candidate || !min || !max) {\n return candidate;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n if (candidateValue < minValue) {\n return setTime(candidate, min);\n }\n if (candidateValue > maxValue) {\n return setTime(candidate, max);\n }\n return candidate;\n};\n/**\n * @hidden\n */\nexport var isInTimeRange = function (candidate, min, max) {\n if (!candidate || !min || !max) {\n return true;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n return minValue <= candidateValue && candidateValue <= maxValue;\n};\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) {\n if (candidate === null) {\n return true;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n return minValue <= candidateValue && candidateValue <= maxValue;\n};\n/**\n * @hidden\n */\nexport var isSmallerThanMin = function (val, min) {\n if (val === null || min === null) {\n return false;\n }\n var normalizedValue = setTime(MIDNIGHT_DATE, val);\n var normalizedMin = setTime(MIDNIGHT_DATE, min);\n return normalizedValue.getTime() < normalizedMin.getHours();\n};\n/**\n * @hidden\n */\nexport var isBiggerThanMax = function (val, max) {\n if (val === null || max === null) {\n return false;\n }\n var normalizedValue = setTime(MIDNIGHT_DATE, val);\n var normalizedMax = setTime(MIDNIGHT_DATE, max);\n return normalizedMax.getTime() < normalizedValue.getHours();\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { isEqual, cloneDate } from '@progress/kendo-date-math';\nimport { registerForIntl, provideIntlService, registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { KendoDate } from './models';\nimport { guid, AsyncFocusBlur, noop, classNames } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { approximateStringMatching, defaultFormat, defaultFormatPlaceholder, isInRange, wrapperClasses } from './utils';\nimport { MAX_DATE, MIN_DATE } from './../utils';\nimport { messages, increaseValue, decreaseValue } from './../messages';\nimport { isInTimeRange } from '../timepicker/utils';\nimport { MIN_TIME, MAX_TIME } from '../defaults';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n// tslint:enable:max-line-length\nvar DateInput = /** @class */ (function (_super) {\n __extends(DateInput, _super);\n function DateInput(props) {\n var _this = _super.call(this, props) || this;\n _this.kendoDate = null;\n _this.paste = false;\n _this._element = null;\n _this._wrapper = null;\n _this._inputId = guid();\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._element) {\n _this._element.focus();\n }\n };\n /**\n * @hidden\n */\n _this.setValidity = function () {\n if (_this.element && _this.element.setCustomValidity) {\n _this.element.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || DateInput.defaultProps.validationMessage);\n }\n };\n _this.updateOnPaste = function (event) {\n if (!_this.element || !_this.kendoDate) {\n return;\n }\n var value = provideIntlService(_this).parseDate(_this.element.value, _this.props.format) || _this.value;\n var oldValue = _this.value;\n _this.kendoDate.setValue(value);\n _this.triggerChange(event, oldValue);\n };\n /* Handlers */\n _this.spinnersMouseDown = function (event) {\n /* do not steal focus from input when changing value with spinners */\n event.preventDefault();\n /* manually focus the input in case the user clicks the spinners first */\n if (_this.element && document.activeElement !== _this.element) {\n _this.element.focus({ preventScroll: true });\n }\n };\n _this.handlePaste = function () {\n _this.paste = true;\n };\n _this.elementChange = function (event) {\n if (!_this.element || !_this.kendoDate) {\n return;\n }\n if (_this.paste) {\n _this.updateOnPaste(event);\n _this.paste = false;\n return;\n }\n var _a = _this.kendoDate.getTextAndFormat(), text = _a.text, currentFormat = _a.format;\n _this.currentFormat = currentFormat;\n var dateBeforeChange = _this.value;\n var diff = approximateStringMatching(text, _this.currentFormat, _this.element.value, _this.selection.start);\n var navigationOnly = (diff.length === 1 && diff[0][1] === '_');\n if (!navigationOnly) {\n for (var i = 0; i < diff.length; i++) {\n _this.kendoDate.parsePart(diff[i][0], diff[i][1]);\n }\n }\n if (diff.length && diff[0][0] !== '_') {\n _this.setSelection(_this.selectionBySymbol(diff[0][0]));\n }\n if (navigationOnly) {\n _this.switchDateSegment(1);\n }\n _this.triggerChange(event, dateBeforeChange);\n };\n _this.elementClick = function (_) {\n _this.setSelection(_this.selectionByIndex(_this.selection.start));\n };\n _this.nativeWheel = function (event) {\n event.preventDefault();\n };\n _this.wheel = function (event) {\n if (document.activeElement !== _this.element) {\n return;\n }\n if (event.nativeEvent.deltaY < 0) {\n _this.increasePart(event);\n }\n if (event.nativeEvent.deltaY > 0) {\n _this.decreasePart(event);\n }\n };\n _this.increasePart = function (event) {\n _this.modifyDateSegmentValue(1, event);\n };\n _this.decreasePart = function (event) {\n _this.modifyDateSegmentValue(-1, event);\n };\n _this.elementKeyDown = function (event) {\n if (event.altKey) {\n return;\n }\n switch (event.keyCode) {\n case 37:\n /*\n * Key: `Left Arrow`\n * Action: Switches to previous logical* segment.\n * (*) https://www.w3.org/International/articles/inline-bidi-markup/uba-basics\n */\n _this.switchDateSegment(-1);\n break;\n case (38):\n /*\n * Key: `Up Arrow`\n * Action: Increases the currently selected segment value.\n */\n _this.modifyDateSegmentValue(1, event);\n break;\n case 39:\n /*\n * Key: `Right Arrow`\n * Action: Switches to the next logical segment.\n */\n _this.switchDateSegment(1);\n break;\n case 40:\n /*\n * Key: `Down Arrow`\n * Action: Decreases the currently selected segment value.\n */\n _this.modifyDateSegmentValue(-1, event);\n break;\n default:\n /*\n * Key: any\n * Action: Does not prevent the default behavior.\n */\n return;\n }\n event.preventDefault();\n };\n _this.elementOnFocus = function (_) {\n if (_this.wrapper) {\n _this.wrapper.classList.add('k-state-focused');\n }\n _this.setState({ focused: true });\n };\n _this.elementOnBlur = function (_) {\n if (_this.wrapper) {\n _this.wrapper.classList.remove('k-state-focused');\n }\n _this.setState({ focused: false });\n };\n validatePackage(packageMetadata);\n _this.state = {\n focused: false\n };\n return _this;\n }\n /**\n * @hidden\n */\n DateInput.prototype.componentDidMount = function () {\n this.setValidity();\n if (this.wrapper) {\n this.wrapper.addEventListener('wheel', this.nativeWheel, { passive: false });\n }\n };\n /**\n * @hidden\n */\n DateInput.prototype.componentDidUpdate = function (_, prevState) {\n if (this._lastSelectedSymbol && prevState.focused === this.state.focused) {\n this.setSelection(this.selectionBySymbol(this._lastSelectedSymbol));\n }\n else if (this.selection.start === this.selection.end) {\n this.setSelection({ start: 0, end: this.currentFormat.length });\n }\n this.setValidity();\n };\n /**\n * @hidden\n */\n DateInput.prototype.componentWillUnmount = function () {\n if (this.wrapper) {\n this.wrapper.removeEventListener('wheel', this.nativeWheel);\n }\n };\n /**\n * @hidden\n */\n DateInput.prototype.render = function () {\n var _this = this;\n if (this.props._ref) {\n this.props._ref.current = this;\n }\n var localizationService = provideLocalizationService(this);\n var props = __assign({}, DateInput.defaultProps, this.props);\n var min = props.min, max = props.max, name = props.name, label = props.label, id = props.id;\n var currentText = this.text;\n var text = currentText === this.props.placeholder ? '' : currentText;\n var placeholder = currentText === this.props.placeholder ? currentText : undefined;\n var inputId = id || this._inputId;\n var isValid = !this.validityStyles || this.validity.valid;\n var ariaProps = {\n 'aria-valuemin': min === null ? undefined : min.getTime(),\n 'aria-valuemax': max === null ? undefined : max.getTime(),\n 'aria-valuetext': text\n };\n if (this.value !== null) {\n ariaProps['aria-valuenow'] = this.value.getTime();\n }\n var wrapperClassesInstance = wrapperClasses.slice();\n if (this.props.className) {\n wrapperClassesInstance.push(this.props.className);\n }\n var dateinput = (React.createElement(AsyncFocusBlur, { onFocus: this.elementOnFocus, onBlur: this.elementOnBlur }, function (_a) {\n var onFocus = _a.onFocus, onBlur = _a.onBlur;\n return (React.createElement(\"span\", { style: !label\n ? { width: _this.props.width }\n : undefined, dir: _this.props.dir, className: wrapperClassesInstance.join(' '), onFocus: onFocus, onBlur: onBlur },\n React.createElement(\"span\", { className: classNames('k-dateinput-wrap', {\n 'k-state-disabled': _this.props.disabled,\n 'k-state-invalid': !isValid\n }), ref: function (span) { _this._wrapper = span; } },\n React.createElement(\"input\", __assign({ role: \"spinbutton\", tabIndex: _this.props.tabIndex, disabled: _this.props.disabled, title: _this.props.title !== undefined ? _this.props.title : currentText, type: \"text\", spellCheck: false, autoComplete: \"off\", autoCorrect: \"off\", className: \"k-input\", id: inputId, \"aria-labelledby\": _this.props.ariaLabelledBy, \"aria-describedby\": _this.props.ariaDescribedBy, \"aria-expanded\": _this.props.ariaExpanded, \"aria-haspopup\": _this.props.ariaHasPopup, onWheel: _this.wheel, onClick: _this.elementClick, onInput: _this.elementChange, onPaste: _this.handlePaste, onKeyDown: _this.elementKeyDown, onChange: noop, value: text, placeholder: placeholder, name: name }, ariaProps, { ref: function (input) { return _this._element = input; } })),\n _this.props.children,\n _this.props.spinners &&\n React.createElement(\"span\", { className: \"k-select\", onMouseDown: _this.spinnersMouseDown },\n React.createElement(\"span\", { className: \"k-link k-link-increase\", \"aria-label\": localizationService\n .toLanguageString(increaseValue, messages[increaseValue]), title: localizationService\n .toLanguageString(increaseValue, messages[increaseValue]), onClick: _this.increasePart },\n React.createElement(\"span\", { className: \"k-icon k-i-arrow-n\" })),\n React.createElement(\"span\", { className: \"k-link k-link-decrease\", \"aria-label\": localizationService\n .toLanguageString(decreaseValue, messages[decreaseValue]), title: localizationService\n .toLanguageString(decreaseValue, messages[decreaseValue]), onClick: _this.decreasePart },\n React.createElement(\"span\", { className: \"k-icon k-i-arrow-s\" }))))));\n }));\n return label\n ? (React.createElement(FloatingLabel, { label: label, editorId: inputId, editorValue: currentText, editorValid: isValid, editorDisabled: this.props.disabled, children: dateinput, style: { width: this.props.width } }))\n : dateinput;\n };\n Object.defineProperty(DateInput.prototype, \"value\", {\n /* Public Getters */\n /**\n * Gets the value of the DateInput.\n */\n get: function () {\n if (this.valueDuringOnChange !== undefined) {\n return this.valueDuringOnChange;\n }\n return this.kendoDate && this.kendoDate.getDateObject();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateInput.prototype, \"name\", {\n /**\n * Gets the `name` property of the DateInput.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateInput.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : DateInput.defaultProps.min;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateInput.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : DateInput.defaultProps.max;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateInput.prototype, \"text\", {\n /**\n * @hidden\n */\n get: function () {\n var props = __assign({}, DateInput.defaultProps, this.props);\n var formatPlaceholder = props.formatPlaceholder, format = props.format, value = props.value, defaultValue = props.defaultValue;\n if (this.kendoDate === null) {\n this.kendoDate = new KendoDate(this.intl.bind(this), formatPlaceholder, format);\n this.kendoDate.setValue(value || defaultValue || null);\n }\n else {\n this.kendoDate.format = format;\n this.kendoDate.formatPlaceholder = formatPlaceholder;\n }\n if (value !== undefined && this.value !== value) {\n this.kendoDate.setValue(value);\n }\n var _a = this.kendoDate.getTextAndFormat(), currentText = _a.text, currentFormat = _a.format;\n this.currentFormat = currentFormat;\n return props.placeholder !== null\n && !this.state.focused\n && !this.kendoDate.hasValue()\n ? props.placeholder\n : currentText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateInput.prototype, \"validity\", {\n /**\n * Represents the validity state into which the DateInput is set.\n */\n get: function () {\n var inRange = isInRange(this.value, this.min, this.max)\n && isInTimeRange(this.value, this.props.minTime, this.props.maxTime);\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== null) && inRange;\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: (this.value && this.max.getTime() < this.value.getTime()) || false,\n rangeUnderflow: (this.value && this.value.getTime() < this.min.getTime()) || false,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateInput.prototype, \"element\", {\n /**\n * Gets the element of the DateInput.\n *\n * @return - An `HTMLInputElement`.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * constructor(props) {\n * super(props);\n * }\n * element = null;\n * render() {\n * return (\n *
    \n * \n * this.element = dateInput ? dateInput.element : null}\n * />\n * \n *
    \n * );\n * }\n * }\n *\n * ReactDOM.render(\n * ,\n * document.getElementsByTagName('my-app')[0]\n * );\n * ```\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateInput.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : DateInput.defaultProps.validityStyles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateInput.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : DateInput.defaultProps.required;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateInput.prototype, \"wrapper\", {\n /**\n * @hidden\n */\n get: function () {\n return this._wrapper;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n DateInput.prototype.intl = function () {\n return provideIntlService(this);\n };\n Object.defineProperty(DateInput.prototype, \"selection\", {\n /* end handlers */\n get: function () {\n var returnValue = { start: 0, end: 0 };\n if (this.element !== null && this.element.selectionStart !== undefined) {\n returnValue = { start: this.element.selectionStart, end: this.element.selectionEnd };\n }\n return returnValue;\n },\n enumerable: true,\n configurable: true\n });\n DateInput.prototype.setSelection = function (selection) {\n var _this = this;\n this._lastSelectedSymbol = this.currentFormat[selection.start];\n window.requestAnimationFrame(function () {\n if (_this.element && document.activeElement === _this.element) {\n _this.element.setSelectionRange(selection.start, selection.end);\n }\n });\n };\n DateInput.prototype.triggerChange = function (event, oldValue) {\n this.valueDuringOnChange = this.value;\n this.forceUpdate();\n if (this.props.onChange\n && !isEqual(oldValue, this.value)) {\n // isEqual works with null\n this.props.onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: this.value,\n target: this\n // inRange: this.props.min && this.props.max ? isInRange(value, this.props.min, this.props.max) : true\n });\n }\n this.valueDuringOnChange = undefined;\n };\n DateInput.prototype.selectionBySymbol = function (symbol) {\n var start = -1;\n var end = 0;\n for (var i = 0; i < this.currentFormat.length; i++) {\n if (this.currentFormat[i] === symbol) {\n end = i + 1;\n if (start === -1) {\n start = i;\n }\n }\n }\n if (start < 0) {\n start = 0;\n }\n return { start: start, end: end };\n };\n DateInput.prototype.selectionByIndex = function (index) {\n var selection = { start: index, end: index };\n for (var i = index, j = index - 1; i < this.currentFormat.length || j >= 0; i++, j--) {\n if (i < this.currentFormat.length && this.currentFormat[i] !== '_') {\n selection = this.selectionBySymbol(this.currentFormat[i]);\n break;\n }\n if (j >= 0 && this.currentFormat[j] !== '_') {\n selection = this.selectionBySymbol(this.currentFormat[j]);\n break;\n }\n }\n return selection;\n };\n DateInput.prototype.switchDateSegment = function (offset) {\n var _a = this.selection, selectionStart = _a.start, selectionEnd = _a.end;\n if (selectionStart < selectionEnd &&\n this.currentFormat[selectionStart] !== this.currentFormat[selectionEnd - 1]) {\n this.setSelection(this.selectionByIndex(offset > 0 ? selectionStart : selectionEnd - 1));\n return;\n }\n var previousFormatSymbol = this.currentFormat[selectionStart];\n var a = selectionStart + offset;\n while (a > 0 && a < this.currentFormat.length) {\n if (this.currentFormat[a] !== previousFormatSymbol &&\n this.currentFormat[a] !== '_') {\n break;\n }\n a += offset;\n }\n if (this.currentFormat[a] === '_') {\n // no known symbol is found\n return;\n }\n var b = a;\n while (b >= 0 && b < this.currentFormat.length) {\n if (this.currentFormat[b] !== this.currentFormat[a]) {\n break;\n }\n b += offset;\n }\n if (a > b && (b + 1 !== selectionStart || a + 1 !== selectionEnd)) {\n this.setSelection({ start: b + 1, end: a + 1 });\n }\n else if (a < b && (a !== selectionStart || b !== selectionEnd)) {\n this.setSelection({ start: a, end: b });\n }\n };\n DateInput.prototype.modifyDateSegmentValue = function (offset, event) {\n if (!this.kendoDate) {\n return;\n }\n var oldValue = this.value;\n var symbol = this.currentFormat[this.selection.start];\n var currentStepSymbol = this.kendoDate.symbolMap(symbol);\n var step = ((this.props.steps || {})[currentStepSymbol] || 1) * offset;\n this.kendoDate.modifyPart(symbol, step);\n this.triggerChange(event, oldValue);\n };\n /**\n * @hidden\n */\n DateInput.propTypes = {\n value: PropTypes.instanceOf(Date),\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n formatPlaceholder: PropTypes.oneOfType([\n PropTypes.oneOf(['wide', 'narrow', 'short', 'formatPattern']),\n PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string,\n hour: PropTypes.string,\n minute: PropTypes.string,\n second: PropTypes.string\n })\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n tabIndex: PropTypes.number,\n title: PropTypes.string,\n steps: PropTypes.shape({\n year: PropTypes.number,\n month: PropTypes.number,\n day: PropTypes.number,\n hour: PropTypes.number,\n minute: PropTypes.number,\n second: PropTypes.number\n }),\n min: PropTypes.instanceOf(Date),\n max: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n spinners: PropTypes.bool,\n name: PropTypes.string,\n dir: PropTypes.string,\n label: PropTypes.string,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n ariaExpanded: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string\n ]),\n onChange: PropTypes.func,\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool\n };\n /**\n * @hidden\n */\n DateInput.defaultProps = {\n format: defaultFormat,\n formatPlaceholder: defaultFormatPlaceholder,\n // defaultValue: null as Date | null,\n spinners: false,\n disabled: false,\n max: cloneDate(MAX_DATE),\n min: cloneDate(MIN_DATE),\n minTime: cloneDate(MIN_TIME),\n maxTime: cloneDate(MAX_TIME),\n required: false,\n validityStyles: true,\n validationMessage: VALIDATION_MESSAGE,\n placeholder: null\n // the rest of the properties are undefined by default\n };\n return DateInput;\n}(React.Component));\nexport { DateInput };\nregisterForIntl(DateInput);\nregisterForLocalization(DateInput);\n","var clearSlide = function (element) {\n element.style.transitionDuration = '';\n element.classList.remove('k-slide-down-appear', 'k-slide-down-appear-active', 'k-slide-down-exit', 'k-slide-down-exit-active', 'k-slide-up-appear', 'k-slide-up-appear-active', 'k-slide-up-exit', 'k-slide-up-exit-active');\n};\nvar firefox = typeof window !== 'undefined' &&\n /Firefox/.test(window.navigator.userAgent);\n/**\n * @hidden\n */\nexport var slide = function (element, direction, duration, type, callback) {\n if (duration === 0) {\n return callback();\n }\n var slideClass = 'k-slide-' + direction + '-' + type;\n var slideActiveClass = slideClass + '-active';\n var transitionend = function () {\n // if event is attached using react,\n // the animation does not work well in firefox,\n // when the show/hide button is toggled quickly.\n element.removeEventListener('transitionend', transitionend);\n clearSlide(element);\n callback();\n };\n element.addEventListener('transitionend', transitionend);\n var ownerDocument = element.ownerDocument;\n if (!ownerDocument) {\n return;\n }\n var deafultView = ownerDocument.defaultView;\n if (!deafultView) {\n return;\n }\n var animate = function () {\n clearSlide(element);\n element.classList.add(slideClass);\n deafultView.requestAnimationFrame(function () {\n element.style.transitionDuration = duration + 'ms';\n element.classList.add(slideActiveClass);\n });\n };\n if (firefox) {\n deafultView.requestAnimationFrame(animate);\n }\n else {\n animate();\n }\n};\n","import { parents, siblingContainer } from '@progress/kendo-popup-common';\nimport { canUseDOM, hasRelativeStackingContext } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var eitherRect = function (rect, offset) {\n if (!rect) {\n return { height: 0, left: offset.left, top: offset.top, width: 0 };\n }\n return rect;\n};\n/**\n * @hidden\n */\nexport var replaceOffset = function (rect, offset) {\n if (!offset) {\n return rect;\n }\n var result = {\n height: rect.height,\n left: offset.left,\n top: offset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\nexport var removeStackingOffset = function (rect, stackingOffset) {\n if (!stackingOffset) {\n return rect;\n }\n var result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\nexport var isDifferentOffset = function (oldOffset, newOffset) {\n var oldLeft = oldOffset.left, oldTop = oldOffset.top;\n var newLeft = newOffset.left, newTop = newOffset.top;\n return Math.abs(oldLeft - newLeft) >= 1 || Math.abs(oldTop - newTop) >= 1;\n};\n/**\n * @hidden\n */\nexport var hasBoundingRect = function (elem) { return !!elem.getBoundingClientRect; };\n/**\n * @hidden\n */\nexport var OVERFLOW_REGEXP = /auto|scroll/;\n/**\n * @hidden\n */\nvar overflowStyle = function (element) {\n var styles = window.getComputedStyle(element);\n return \"\" + styles.overflow + styles.overflowX + styles.overflowY;\n};\n/**\n * @hidden\n */\nexport var scrollableParents = function (element) {\n var parentElements = [];\n if (!canUseDOM) {\n return parentElements;\n }\n var parent = element.parentElement;\n while (parent) {\n if (OVERFLOW_REGEXP.test(overflowStyle(parent))) {\n parentElements.push(parent);\n }\n parent = parent.parentElement;\n }\n parentElements.push(window);\n return parentElements;\n};\n/**\n * @hidden\n */\nexport var FRAME_DURATION = 1000 / 60; // 1000ms divided by 60fps\n/**\n * @hidden\n */\nexport var HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext();\n/**\n * @hidden\n */\nexport var zIndex = function (anchor, container) {\n if (!anchor || !canUseDOM) {\n return null;\n }\n var sibling = siblingContainer(anchor, container);\n if (!sibling) {\n return null;\n }\n var result = [anchor].concat(parents(anchor, sibling)).reduce(function (index, p) {\n var zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;\n var current = parseInt(zIndexStyle, 10);\n return current > index ? current : index;\n }, 0);\n return result ? (result + 1) : null;\n};\n/**\n * @hidden\n */\nexport var CollisionType = {\n fit: 'fit',\n flip: 'flip'\n};\n/**\n * @hidden\n */\nexport var AlignPoint = {\n left: 'left',\n center: 'center',\n right: 'right',\n bottom: 'bottom',\n top: 'top'\n};\n/**\n * @hidden\n */\nexport var throttle = function (func, wait, options) {\n if (options === void 0) { options = {}; }\n var timeout, context, args, result;\n var previous = 0;\n options = options || {};\n var later = function () {\n previous = options.leading === false ? 0 : new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n };\n var throttled = function () {\n var now = new Date().getTime();\n if (!previous && options.leading === false) {\n previous = now;\n }\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n }\n else if (!timeout && options.trailing !== false) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n return throttled;\n};\n","import { eitherRect, removeStackingOffset } from '../util';\n/**\n * @hidden\n */\nvar AlignService = /** @class */ (function () {\n function AlignService(_dom) {\n this._dom = _dom;\n }\n AlignService.prototype.alignElement = function (settings) {\n var anchor = settings.anchor, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, offset = settings.offset;\n var fixedMode = !this._dom.hasOffsetParent(element);\n var anchorRect = fixedMode ?\n this.absoluteRect(anchor, element, offset) :\n this.relativeRect(anchor, element, offset);\n return this._dom.align({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n elementAlign: elementAlign,\n elementRect: this._dom.offset(element)\n });\n };\n AlignService.prototype.absoluteRect = function (anchor, element, offset) {\n var dom = this._dom;\n var rect = eitherRect(dom.offset(anchor), offset);\n var stackingOffset = dom.stackingElementOffset(element);\n var removedOffset = removeStackingOffset(rect, stackingOffset);\n var stackingScroll = dom.stackingElementScroll(element);\n var withScroll = dom.addScroll(removedOffset, stackingScroll);\n var scrollPosition = this.elementScrollPosition(anchor, element);\n var result = dom.removeScroll(withScroll, scrollPosition);\n result.left += window.scrollX || window.pageXOffset;\n result.top += window.scrollY || window.pageYOffset;\n return result;\n };\n AlignService.prototype.elementScrollPosition = function (anchor, element) {\n return anchor ? { x: 0, y: 0 } : this._dom.scrollPosition(element);\n };\n AlignService.prototype.relativeRect = function (anchor, element, offset) {\n return eitherRect(this._dom.position(anchor, element), offset);\n };\n return AlignService;\n}());\nexport { AlignService };\n","import { align, applyLocationOffset, boundingOffset, getWindowViewPort, isBodyOffset, offset, positionWithScroll, restrictToView, addScroll, removeScroll, scrollPosition, siblingContainer } from '@progress/kendo-popup-common';\nimport { HAS_RELATIVE_STACKING_CONTEXT, scrollableParents, zIndex } from '../util';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n }\n DOMService.prototype.addOffset = function (current, addition) {\n return {\n left: current.left + addition.left,\n top: current.top + addition.top\n };\n };\n DOMService.prototype.align = function (settings) {\n return align(settings);\n };\n DOMService.prototype.boundingOffset = function (el) {\n return boundingOffset(el);\n };\n DOMService.prototype.getWindow = function () {\n return canUseDOM ? window : null;\n };\n DOMService.prototype.isBodyOffset = function (el) {\n return isBodyOffset(el);\n };\n DOMService.prototype.hasOffsetParent = function (el) {\n if (!el) {\n return false;\n }\n var offsetParentEl = el.offsetParent;\n return offsetParentEl &&\n !(offsetParentEl.nodeName === 'BODY' &&\n window.getComputedStyle(offsetParentEl).position === 'static');\n };\n DOMService.prototype.offset = function (el) {\n if (!el) {\n return null;\n }\n return offset(el);\n };\n DOMService.prototype.staticOffset = function (element) {\n if (!element) {\n return null;\n }\n var _a = element.style, left = _a.left, top = _a.top;\n element.style.left = '0px';\n element.style.top = '0px';\n var currentOffset = offset(element);\n element.style.left = left;\n element.style.top = top;\n return currentOffset;\n };\n DOMService.prototype.position = function (element, popup) {\n if (!element || !popup) {\n return null;\n }\n var parentSibling = siblingContainer(element, popup);\n return positionWithScroll(element, parentSibling);\n };\n DOMService.prototype.relativeOffset = function (el, currentLocation) {\n return applyLocationOffset(this.offset(el), currentLocation, this.isBodyOffset(el));\n };\n DOMService.prototype.addScroll = function (rect, scroll) {\n return addScroll(rect, scroll);\n };\n DOMService.prototype.removeScroll = function (rect, scroll) {\n return removeScroll(rect, scroll);\n };\n DOMService.prototype.restrictToView = function (settings) {\n return restrictToView(settings);\n };\n DOMService.prototype.scrollPosition = function (el) {\n return scrollPosition(el);\n };\n DOMService.prototype.scrollableParents = function (el) {\n return scrollableParents(el);\n };\n DOMService.prototype.stackingElementOffset = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return offset(relativeContextElement);\n };\n DOMService.prototype.stackingElementScroll = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return { x: 0, y: 0 };\n }\n return {\n x: relativeContextElement.scrollLeft,\n y: relativeContextElement.scrollTop\n };\n };\n DOMService.prototype.stackingElementViewPort = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return {\n height: relativeContextElement.scrollHeight,\n width: relativeContextElement.scrollWidth\n };\n };\n DOMService.prototype.getRelativeContextElement = function (el) {\n if (!el || !HAS_RELATIVE_STACKING_CONTEXT) {\n return null;\n }\n var parent = el.parentElement;\n while (parent) {\n if (window.getComputedStyle(parent).transform !== 'none') {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n };\n DOMService.prototype.useRelativePosition = function (el) {\n return !!this.getRelativeContextElement(el);\n };\n DOMService.prototype.windowViewPort = function (el) {\n return getWindowViewPort(el);\n };\n DOMService.prototype.zIndex = function (anchor, container) {\n return zIndex(anchor, container);\n };\n DOMService.prototype.zoomLevel = function () {\n if (!canUseDOM) {\n return 1;\n }\n return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2));\n };\n DOMService.prototype.isZoomed = function () {\n return this.zoomLevel() > 1;\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { eitherRect, replaceOffset } from '../util';\n/**\n * @hidden\n */\nvar PositionService = /** @class */ (function () {\n function PositionService(_dom) {\n this._dom = _dom;\n }\n PositionService.prototype.positionElement = function (settings) {\n var anchor = settings.anchor, currentLocation = settings.currentLocation, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, collisions = settings.collisions;\n var dom = this._dom;\n var viewPort = settings.viewPort || dom.stackingElementViewPort(element) || dom.windowViewPort(element);\n var anchorRect = eitherRect(dom.offset(anchor), currentLocation);\n var initialElementRect = replaceOffset(dom.staticOffset(element), currentLocation);\n var elementRect = this.elementRect(element, initialElementRect);\n var result = dom.restrictToView({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n collisions: collisions,\n elementAlign: elementAlign,\n elementRect: elementRect,\n viewPort: viewPort\n });\n return {\n flipped: result.flipped,\n offset: dom.addOffset(initialElementRect, result.offset)\n };\n };\n PositionService.prototype.elementRect = function (element, rect) {\n return this._dom.removeScroll(rect, this._dom.scrollPosition(element));\n };\n return PositionService;\n}());\nexport { PositionService };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-popup',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584105,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as PropTypes from 'prop-types';\nimport { slide } from './animation';\nimport { classNames, canUseDOM } from '@progress/kendo-react-common';\nimport { CollisionType, AlignPoint, throttle, FRAME_DURATION } from './util';\nimport { AlignService } from './services/alignService';\nimport { DOMService } from './services/domService';\nimport { PositionService } from './services/positionService';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nfunction isEquivalent(a, b) {\n if (a === b) {\n return true;\n }\n if (!!a !== !!b) {\n return false;\n }\n var aProps = Object.getOwnPropertyNames(a);\n var bProps = Object.getOwnPropertyNames(b);\n if (aProps.length !== bProps.length) {\n return false;\n }\n for (var i = 0; i < aProps.length; i++) {\n var propName = aProps[i];\n if (a[propName] !== b[propName]) {\n return false;\n }\n }\n return true;\n}\nvar DEFAULT_OFFSET = {\n left: -1000,\n top: 0\n};\nvar Status;\n(function (Status) {\n Status[\"hiding\"] = \"hiding\";\n Status[\"hidden\"] = \"hidden\";\n Status[\"showing\"] = \"showing\";\n Status[\"shown\"] = \"shown\";\n Status[\"reposition\"] = \"reposition\";\n})(Status || (Status = {}));\nvar ANIMATION_CONTAINER = 'k-animation-container';\nvar ANIMATION_CONTAINER_SHOWN = 'k-animation-container-shown';\nvar ANIMATION_CONTAINER_RELATIVE = 'k-animation-container-relative';\nvar ANIMATION_CONTAINER_CHILD = 'k-child-animation-container';\nvar K_POPUP = 'k-popup';\n/**\n * @hidden\n */\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = { current: Status.hidden, previous: Status.hidden, props: {} };\n _this._popup = null;\n _this.show = function (popup) {\n _this.setPosition(popup);\n _this.animate(popup.firstChild, 'enter', _this.onOpened);\n _this.setState({ current: Status.shown, previous: _this.state.current });\n };\n _this.setPosition = function (popup) {\n var _a = _this.props, anchorAlign = _a.anchorAlign, popupAlign = _a.popupAlign, collision = _a.collision, offset = _a.offset, anchor = _a.anchor;\n var popupContent = popup.firstElementChild;\n var _b = getComputedStyle(popupContent), contentWidth = _b.width, contentHeight = _b.height;\n // The absolute position prevents appearing of a scrollbar which could move the anchor element and breaks the positioning.\n popupContent.style.position = 'absolute';\n // Width and height are required since absolute position breaks the element sizing.\n popupContent.style.width = contentWidth;\n popupContent.style.height = contentHeight;\n var alignedOffset = _this._alignService.alignElement({\n anchor: anchor,\n element: popupContent,\n elementAlign: popupAlign,\n anchorAlign: anchorAlign,\n offset: offset\n });\n var position = _this._positionService.positionElement({\n anchor: anchor,\n anchorAlign: anchorAlign,\n collisions: collision,\n element: popupContent,\n currentLocation: alignedOffset,\n elementAlign: popupAlign\n });\n if (position.offset) {\n popup.style.top = position.offset.top + 'px';\n popup.style.left = position.offset.left + 'px';\n popupContent.style.position = '';\n popupContent.style.width = '';\n popupContent.style.height = '';\n }\n _this._flipped = position.flipped;\n };\n _this.onOpened = function () {\n var element = _this._popup;\n if (!element) {\n return;\n }\n if (_this.props.show) {\n element.classList.add(ANIMATION_CONTAINER_SHOWN);\n }\n _this.attachRepositionHandlers(element);\n if (_this.props.onOpen) {\n _this.props.onOpen.call(undefined, { target: _this });\n }\n };\n _this.animate = function (element, type, callback) {\n slide(element, _this._flipped ? 'up' : 'down', _this.animationDuration[type], type, callback);\n };\n _this.onClosing = function (popup) {\n if (!_this.props.show) {\n popup.classList.remove(ANIMATION_CONTAINER_SHOWN);\n }\n _this.detachRepositionHandlers();\n };\n _this.onClosed = function () {\n if (_this.state.current === Status.hiding && _this.state.previous === Status.shown) {\n _this.setState({ current: Status.hidden, previous: _this.state.current });\n }\n if (_this.props.onClose) {\n _this.props.onClose.call(undefined, { target: _this });\n }\n };\n validatePackage(packageMetadata);\n _this._domService = new DOMService();\n _this._alignService = new AlignService(_this._domService);\n _this._positionService = new PositionService(_this._domService);\n _this.reposition = throttle(_this.reposition.bind(_this), FRAME_DURATION);\n return _this;\n }\n /**\n * @hidden\n */\n Popup.getDerivedStateFromProps = function (props, state) {\n var show = props.show, anchor = props.anchor, anchorAlign = props.anchorAlign, appendTo = props.appendTo, collision = props.collision, popupAlign = props.popupAlign, className = props.className, popupClass = props.popupClass, style = props.style, offset = props.offset, contentKey = props.contentKey;\n var nextState = __assign({}, state, { props: {\n show: show, anchor: anchor, anchorAlign: anchorAlign, appendTo: appendTo, collision: collision, popupAlign: popupAlign, className: className, popupClass: popupClass, style: style, offset: offset, contentKey: contentKey\n } });\n if (props.show) {\n if (state.current === Status.hidden || state.current === Status.hiding) {\n return __assign({}, nextState, { current: Status.showing, previous: state.current });\n }\n if (state.current === Status.showing) {\n return __assign({}, nextState, { current: Status.shown, previous: state.current });\n }\n if (state.current === Status.shown &&\n (!isEquivalent(offset, state.props.offset) ||\n !isEquivalent(anchorAlign, state.props.anchorAlign) ||\n !isEquivalent(appendTo, state.props.appendTo) ||\n !isEquivalent(collision, state.props.collision) ||\n !isEquivalent(popupAlign, state.props.popupAlign) ||\n !isEquivalent(style, state.props.style) ||\n anchor !== state.props.anchor ||\n popupClass !== state.props.popupClass ||\n className !== state.props.className)) {\n return __assign({}, nextState, { current: Status.reposition, previous: state.current });\n }\n return nextState;\n }\n if (state.current === Status.hiding || state.current === Status.hidden) {\n return __assign({}, nextState, { current: Status.hidden, previous: state.current });\n }\n return __assign({}, nextState, { current: Status.hiding, previous: state.current });\n };\n /**\n * @hidden\n */\n Popup.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n else if (this.state.current === Status.hiding && this._popup) {\n this.onClosing(this._popup);\n this.animate(this._popup.firstChild, 'exit', this.onClosed);\n }\n else if (this.state.current === Status.reposition && this.state.previous === Status.shown) {\n this.setState({ current: Status.shown, previous: this.state.current });\n }\n else if (this.state.current === Status.shown &&\n prevProps.contentKey !== this.props.contentKey && this._popup) {\n this.setPosition(this._popup);\n }\n };\n /**\n * @hidden\n */\n Popup.prototype.componentDidMount = function () {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n };\n /**\n * @hidden\n */\n Popup.prototype.componentWillUnmount = function () {\n this.detachRepositionHandlers();\n };\n /**\n * @hidden\n */\n Popup.prototype.render = function () {\n var _this = this;\n var _a = this.props, children = _a.children, className = _a.className, popupClass = _a.popupClass, show = _a.show, id = _a.id;\n var appendTo = this.props.appendTo ?\n this.props.appendTo :\n canUseDOM ?\n (this.props.anchor && this.props.anchor.ownerDocument ? this.props.anchor.ownerDocument.body : document.body)\n : undefined;\n if (this.state.current === Status.reposition && this.state.previous === Status.shown && this._popup) {\n this.setPosition(this._popup);\n }\n var style = Object.assign({}, { position: 'absolute' }, this.props.style || {});\n var closing = this.state.current === Status.hiding;\n if ((show || closing) && appendTo) {\n var popup = (React.createElement(\"div\", { className: classNames(ANIMATION_CONTAINER, ANIMATION_CONTAINER_RELATIVE, className), id: id, ref: function (e) { return _this._popup = e; }, style: style },\n React.createElement(\"div\", { className: classNames(popupClass, K_POPUP, ANIMATION_CONTAINER_CHILD), style: { transitionDelay: '0ms' } }, children)));\n return ReactDOM.createPortal(popup, appendTo);\n }\n return null;\n };\n Object.defineProperty(Popup.prototype, \"animationDuration\", {\n get: function () {\n var animate = this.props.animate;\n var enter = 0;\n var exit = 0;\n if (animate) {\n if (animate === true) {\n enter = exit = 300;\n }\n else {\n enter = animate.openDuration || 0;\n exit = animate.closeDuration || 0;\n }\n }\n return { enter: enter, exit: exit };\n },\n enumerable: true,\n configurable: true\n });\n Popup.prototype.attachRepositionHandlers = function (element) {\n var _this = this;\n this.detachRepositionHandlers();\n this._scrollableParents = this._domService.scrollableParents(this.props.anchor || element);\n this._scrollableParents.map(function (p) { return p.addEventListener('scroll', _this.reposition); });\n window.addEventListener('resize', this.reposition);\n };\n Popup.prototype.detachRepositionHandlers = function () {\n var _this = this;\n if (this._scrollableParents) {\n this._scrollableParents.map(function (p) { return p.removeEventListener('scroll', _this.reposition); });\n this._scrollableParents = undefined;\n }\n window.removeEventListener('resize', this.reposition);\n };\n Popup.prototype.reposition = function () {\n this.setState({ current: Status.reposition, previous: this.state.current });\n };\n /**\n * @hidden\n */\n Popup.propTypes = {\n anchor: function (props) {\n var anchor = props.anchor;\n if (anchor && typeof anchor.nodeType !== 'number') {\n return new Error('Invalid prop `anchor` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n appendTo: function (props) {\n var element = props.appendTo;\n if (element && typeof element.nodeType !== 'number') {\n return new Error('Invalid prop `appendTo` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n className: PropTypes.string,\n id: PropTypes.string,\n popupClass: PropTypes.string,\n collision: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n CollisionType.fit,\n CollisionType.flip\n ]),\n vertical: PropTypes.oneOf([\n CollisionType.fit,\n CollisionType.flip\n ])\n }),\n anchorAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n popupAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n offset: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number\n }),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node\n ]),\n show: PropTypes.bool,\n animate: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })\n ])\n };\n /**\n * @hidden\n */\n Popup.defaultProps = {\n collision: {\n horizontal: CollisionType.fit,\n vertical: CollisionType.flip\n },\n anchorAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.bottom\n },\n popupAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.top\n },\n offset: DEFAULT_OFFSET,\n animate: true,\n // appendTo: document.body,\n show: false\n };\n return Popup;\n}(React.Component));\nexport { Popup };\n","var __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};\nimport * as React from 'react';\nimport { Popup as PopupComponent } from './Popup';\n/**\n * The PopupPropsContext. It allows to configure the Popup props from a wrapper component.\n *\n * @example\n * ```jsx-no-run\n * ({ ...props, appendTo: document.querySelector('myPopupsContainer') })}>\n * \n * \n * \n * ```\n */\nexport var PopupPropsContext = React.createContext(function (props) { return props; });\n/**\n * The KendoReact Popup component.\n */\nexport var Popup = React.forwardRef(function (props, ref) {\n var contextPropsCallback = React.useContext(PopupPropsContext);\n var popupProps = contextPropsCallback.call(undefined, props);\n return (React.createElement(PopupComponent, __assign({ ref: ref }, popupProps)));\n});\n","import * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * Represents the default `toggleButton` component rendered by the [KendoReact Scheduler DatePicker]({% slug overview_datepicker %}).\n */\nexport var ToggleButton = React.forwardRef(function (props, ref) {\n var className = classNames('k-select', props.className);\n return (React.createElement(\"a\", { ref: ref, id: props.id, role: \"button\", style: props.style, className: className, tabIndex: props.tabIndex, title: props.title, \"aria-label\": props.title, onMouseDown: props.onMouseDown, onClick: props.onClick, onMouseUp: props.onMouseUp }, props.children));\n});\n","import * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * Represents the default `pickerWrap` component rendered by the [KendoReact Scheduler DatePicker]({% slug overview_datepicker %}).\n */\nexport var PickerWrap = React.forwardRef(function (props, ref) {\n var _ref = props._ref;\n var element = React.useRef(null);\n React.useImperativeHandle(ref, function () { return element.current; });\n React.useImperativeHandle(_ref, function () { return element.current; });\n var className = React.useMemo(function () { return classNames(props.className, 'k-picker-wrap'); }, [props.className]);\n return (React.createElement(\"span\", { ref: element, id: props.id, style: props.style, className: className, tabIndex: props.tabIndex }, props.children));\n});\n","var __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};\nimport * as React from 'react';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\n/**\n * @hidden\n */\nexport var usePickerFloatingLabel = function (dateInput) {\n var _a = React.useState(false), show = _a[0], setShow = _a[1];\n var syncText = function () {\n if (dateInput.current) {\n setShow(Boolean(dateInput.current.text));\n }\n };\n React.useEffect(syncText);\n return {\n editorValue: show\n };\n};\n/**\n * @hidden\n */\nexport var PickerFloatingLabel = function (props) {\n var floatingLabelProps = usePickerFloatingLabel(props.dateInput);\n return (React.createElement(FloatingLabel, __assign({}, props, floatingLabelProps)));\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { getDate, cloneDate } from '@progress/kendo-date-math';\nimport { classNames, guid, Keys, AsyncFocusBlur } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { DateInput } from '../dateinput/DateInput';\nimport { Calendar } from '../calendar/components/Calendar';\nimport { MIN_DATE, MAX_DATE, setTime } from '../utils';\nimport { isInDateRange } from '../utils';\nimport { messages, toggleCalendar } from '../messages';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { ToggleButton } from './ToggleButton';\nimport { PickerWrap } from '../common/PickerWrap';\nimport { PickerFloatingLabel } from '../hooks/usePickerFloatingLabel';\nvar DatePicker = /** @class */ (function (_super) {\n __extends(DatePicker, _super);\n function DatePicker(props) {\n var _this = _super.call(this, props) || this;\n _this._popupId = guid();\n _this._element = null;\n _this._wrapper = null;\n _this._dateInput = React.createRef();\n _this._calendar = null;\n _this.shouldFocusDateInput = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this.dateInput) {\n _this.dateInput.focus();\n }\n };\n _this.setCalendarRef = function (calendar) {\n _this._calendar = calendar;\n };\n _this.nextValue = function (nextProps, nextState) {\n return nextProps.value !== undefined\n ? nextProps.value\n : nextState.value;\n };\n _this.nextShow = function (nextProps, nextState) {\n return nextProps.show !== undefined\n ? nextProps.show\n : nextState.show;\n };\n _this.handleInputValueChange = function (event) {\n _this.handleValueChange(event.value, event);\n };\n _this.handleCalendarValueChange = function (event) {\n var value = _this.mergeTime(event.value);\n _this.handleValueChange(value, event);\n };\n _this.handleValueChange = function (value, event) {\n _this.setState({\n value: cloneDate(value || undefined),\n show: false\n });\n _this.valueDuringOnChange = value;\n _this.showDuringOnChange = false;\n _this.shouldFocusDateInput = true;\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n show: _this.show,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n _this.showDuringOnChange = undefined;\n };\n _this.handleFocus = function () {\n _this.setState({ focused: true });\n };\n _this.handleBlur = function () {\n _this.setState({ focused: false });\n _this.setShow(false);\n };\n _this.handleIconClick = function () {\n if (_this.props.disabled) {\n return;\n }\n _this.shouldFocusDateInput = true;\n _this.setShow(!_this.show);\n };\n _this.handleIconMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleKeyDown = function (event) {\n var altKey = event.altKey, keyCode = event.keyCode;\n if (keyCode === Keys.esc) {\n _this.shouldFocusDateInput = true;\n _this.setShow(false);\n return;\n }\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n _this.shouldFocusDateInput = keyCode === Keys.up;\n _this.setShow(keyCode === Keys.down);\n }\n };\n validatePackage(packageMetadata);\n _this.state = {\n value: _this.props.defaultValue || DatePicker.defaultProps.defaultValue,\n show: _this.props.defaultShow || DatePicker.defaultProps.defaultShow,\n focused: false\n };\n return _this;\n }\n Object.defineProperty(DatePicker.prototype, \"element\", {\n /**\n * Gets the wrapping element of the DatePicker.\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"dateInput\", {\n /**\n * Gets the DateInput component inside the DatePicker component.\n */\n get: function () {\n return this._dateInput.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"calendar\", {\n /**\n * Gets the Calendar component inside the DatePicker component.\n */\n get: function () {\n return this._calendar;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"value\", {\n /**\n * Gets the value of the DatePicker.\n */\n get: function () {\n var value = this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n return (value !== null) ? cloneDate(value) : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"show\", {\n /**\n * Gets the popup state of the DatePicker.\n */\n get: function () {\n return this.showDuringOnChange !== undefined\n ? this.showDuringOnChange\n : this.props.show !== undefined\n ? this.props.show\n : this.state.show;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"name\", {\n /**\n * Gets the `name` property of the DatePicker.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : DatePicker.defaultProps.min;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : DatePicker.defaultProps.max;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"dateInputComp\", {\n get: function () {\n return this.props.dateInput || DatePicker.defaultProps.dateInput;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"toggleButtonComp\", {\n get: function () {\n return this.props.toggleButton || DatePicker.defaultProps.toggleButton;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"calendarComp\", {\n get: function () {\n return this.props.calendar || DatePicker.defaultProps.calendar;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"popupComp\", {\n get: function () {\n return this.props.popup || DatePicker.defaultProps.popup;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"pickerWrapComp\", {\n get: function () {\n return this.props.pickerWrap || DatePicker.defaultProps.pickerWrap;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"validity\", {\n /**\n * Represents the validity state into which the DatePicker is set.\n */\n get: function () {\n var inRange = isInDateRange(this.value, this.min, this.max);\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== null) && inRange;\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: (this.value && this.max.getTime() < this.value.getTime()) || false,\n rangeUnderflow: (this.value && this.value.getTime() < this.min.getTime()) || false,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : DatePicker.defaultProps.validityStyles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DatePicker.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : DatePicker.defaultProps.required;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n DatePicker.prototype.componentDidMount = function () {\n if (this.show) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.forceUpdate();\n }\n };\n /**\n * @hidden\n */\n DatePicker.prototype.componentDidUpdate = function () {\n if (this._calendar && this._calendar.element && this.show && !this.prevShow) {\n this._calendar.element.focus({ preventScroll: true });\n }\n if (this.dateInput\n && this.dateInput.element\n && !this.show\n && this.shouldFocusDateInput) {\n this.dateInput.element.focus({ preventScroll: true });\n }\n this.prevShow = this.show;\n this.shouldFocusDateInput = false;\n };\n /**\n * @hidden\n */\n DatePicker.prototype.componentWillUnmount = function () {\n clearTimeout(this.nextTickId);\n };\n /**\n * @hidden\n */\n DatePicker.prototype.render = function () {\n var _this = this;\n var _a = this.props, disabled = _a.disabled, tabIndex = _a.tabIndex, title = _a.title, id = _a.id, format = _a.format, formatPlaceholder = _a.formatPlaceholder, min = _a.min, max = _a.max, weekNumber = _a.weekNumber, focusedDate = _a.focusedDate, className = _a.className, width = _a.width, name = _a.name, validationMessage = _a.validationMessage, required = _a.required, validityStyles = _a.validityStyles, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy;\n var _b = this.props.popupSettings, popupClass = _b.popupClass, otherPopupSettings = __rest(_b, [\"popupClass\"]);\n var show = this.show;\n var value = this.value;\n var sanitizedValue = value && getDate(value);\n var isValid = !this.validityStyles || this.validity.valid;\n var rootClassName = classNames('k-widget k-datepicker', className);\n var wrapperClassNames = classNames('k-picker-wrap', {\n 'k-state-invalid': !isValid,\n 'k-state-disabled': disabled,\n 'k-state-focused': this.state.focused\n });\n var popupClassNames = classNames('k-calendar-container k-group k-reset', popupClass);\n var dateInputProps = {\n disabled: disabled,\n format: format,\n formatPlaceholder: formatPlaceholder,\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n max: max,\n min: min,\n name: name,\n onChange: this.handleInputValueChange,\n required: required,\n tabIndex: !show ? tabIndex : -1,\n title: title,\n valid: this.validity.valid,\n validationMessage: validationMessage,\n validityStyles: validityStyles,\n value: value,\n label: undefined,\n placeholder: !this.state.focused ? this.props.placeholder : null,\n ariaHasPopup: true,\n ariaExpanded: this.show\n };\n var popupProps = __assign({ show: show, anchor: this._wrapper || this._element, className: popupClassNames, id: this._popupId, anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n }, popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n } }, otherPopupSettings);\n var calendarProps = {\n disabled: disabled,\n value: sanitizedValue,\n min: min,\n max: max,\n weekNumber: weekNumber,\n focusedDate: focusedDate,\n onChange: this.handleCalendarValueChange\n };\n var datepicker = (React.createElement(AsyncFocusBlur, { onFocus: this.handleFocus, onBlur: this.handleBlur, onSyncBlur: this.props.onBlur, onSyncFocus: this.props.onFocus }, function (_a) {\n var onFocus = _a.onFocus, onBlur = _a.onBlur;\n return (React.createElement(\"span\", { role: \"group\", \"aria-expanded\": _this.show, ref: function (span) { _this._element = span; }, className: rootClassName, onKeyDown: _this.handleKeyDown, style: { width: width }, onFocus: onFocus, onBlur: onBlur },\n React.createElement(_this.pickerWrapComp, { _ref: function (span) { _this._wrapper = span; }, className: wrapperClassNames },\n React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput }, dateInputProps)),\n React.createElement(_this.toggleButtonComp, { onMouseDown: _this.handleIconMouseDown, onClick: _this.handleIconClick, title: provideLocalizationService(_this)\n .toLanguageString(toggleCalendar, messages[toggleCalendar]), className: \"k-select\" },\n React.createElement(\"span\", { className: \"k-icon k-i-calendar\" }))),\n React.createElement(_this.popupComp, __assign({}, popupProps),\n React.createElement(_this.calendarComp, __assign({ _ref: _this.setCalendarRef }, calendarProps)))));\n }));\n return this.props.label\n ? (React.createElement(PickerFloatingLabel, { dateInput: this._dateInput, label: this.props.label, editorId: id, editorValid: isValid, editorDisabled: this.props.disabled, children: datepicker, style: { width: this.props.width } }))\n : datepicker;\n };\n DatePicker.prototype.setShow = function (show) {\n if (this.show === show) {\n return;\n }\n this.setState({ show: show });\n };\n DatePicker.prototype.mergeTime = function (value) {\n return this.value && value ? setTime(value, this.value) : value;\n };\n DatePicker.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n // Handles multiple focus events happening at the same time.\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n /**\n * @hidden\n */\n DatePicker.propTypes = {\n className: PropTypes.string,\n defaultShow: PropTypes.bool,\n defaultValue: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n focusedDate: PropTypes.instanceOf(Date),\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n formatPlaceholder: PropTypes.oneOfType([\n PropTypes.oneOf(['wide', 'narrow', 'short', 'formatPattern']),\n PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string,\n hour: PropTypes.string,\n minute: PropTypes.string,\n second: PropTypes.string\n })\n ]),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n min: PropTypes.instanceOf(Date),\n max: PropTypes.instanceOf(Date),\n name: PropTypes.string,\n popupSettings: PropTypes.shape({\n animate: PropTypes.bool,\n appendTo: PropTypes.any,\n popupClass: PropTypes.string\n }),\n show: PropTypes.bool,\n tabIndex: PropTypes.number,\n title: PropTypes.string,\n value: PropTypes.instanceOf(Date),\n weekNumber: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool\n };\n /**\n * @hidden\n */\n DatePicker.defaultProps = {\n defaultShow: false,\n defaultValue: null,\n dateInput: DateInput,\n calendar: Calendar,\n toggleButton: ToggleButton,\n popup: Popup,\n pickerWrap: PickerWrap,\n disabled: false,\n format: 'd',\n max: MAX_DATE,\n min: MIN_DATE,\n popupSettings: {},\n tabIndex: 0,\n weekNumber: false,\n required: false,\n validityStyles: true\n };\n return DatePicker;\n}(React.Component));\nexport { DatePicker };\nregisterForLocalization(DatePicker);\n","import { cloneDate } from '@progress/kendo-date-math';\nvar setHours = function (date, hours) {\n var clone = cloneDate(date);\n clone.setHours(hours);\n return clone;\n};\nvar isAM = function (value) { return value !== null && value < 12; };\nvar isPM = function (value) { return value !== null && (!value || value > 11); };\nvar inRange = function (value, min, max) { return ((!min && !max) || (value >= min && value <= max)); };\nvar inReverseRange = function (value, min, max) { return ((!min && !max) || value >= min || value <= max); };\n/**\n * @hidden\n */\nvar DayPeriodService = /** @class */ (function () {\n function DayPeriodService(intl) {\n this.intl = intl;\n }\n /**\n * @hidden\n */\n DayPeriodService.prototype.apply = function (value, candidate) {\n var hour = value.getHours();\n var hourAM = isAM(hour);\n var candidateAM = isAM(candidate.getHours());\n if ((hourAM && candidateAM) || (!hourAM && !candidateAM)) {\n return value;\n }\n var _a = this.normalizedRange(), min = _a[0], _b = _a[1], max = _b === void 0 ? 24 : _b;\n var result = hour + (candidateAM ? -12 : 12);\n return setHours(value, Math.min(Math.max(min, result), (max || 24)));\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.configure = function (settings) {\n var _a = settings.min, min = _a === void 0 ? this.min : _a, _b = settings.max, max = _b === void 0 ? this.max : _b, _c = settings.part, part = _c === void 0 ? this.part : _c;\n this.min = min;\n this.max = max;\n this.part = part;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.data = function (_) {\n var names = this.part.names;\n if (!names) {\n return [];\n }\n var data = [];\n var _a = this.normalizedRange(), min = _a[0], max = _a[1];\n var dayPeriod = this.intl.dateFormatNames(names);\n if (isAM(min)) {\n data.push({ text: dayPeriod.am, value: setHours(this.min, min) });\n }\n if (isPM(max)) {\n data.push({ text: dayPeriod.pm, value: setHours(this.min, Math.max(12, max)) });\n }\n return this.min.getHours() !== min ? data.reverse() : data;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.isRangeChanged = function (_, __) {\n return false;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.limitRange = function (min, max, _) {\n return [min, max];\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.total = function () {\n var _a = this.normalizedRange(), min = _a[0], max = _a[1];\n if (!min && !max) {\n return 2;\n }\n if (min > 11 || max < 12) {\n return 1;\n }\n return 2;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.selectedIndex = function (value) {\n if (!this.valueInList(value)) {\n return -1;\n }\n var index = Math.floor(value.getHours() / 12);\n return this.min.getHours() === this.normalizedRange()[0] ? index : (index === 0 ? 1 : 0);\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.valueInList = function (value) {\n var reverse = this.min.getHours() !== this.normalizedRange()[0];\n var isInRange = reverse ? inReverseRange : inRange;\n return isInRange(value.getHours(), this.min.getHours(), this.max.getHours());\n };\n DayPeriodService.prototype.normalizedRange = function () {\n var minHour = this.min.getHours();\n var maxHour = this.max.getHours();\n return [\n Math.min(minHour, maxHour),\n Math.max(minHour, maxHour)\n ];\n };\n return DayPeriodService;\n}());\nexport { DayPeriodService };\n","import { getDate, isEqual } from '@progress/kendo-date-math';\nimport { MIDNIGHT_DATE } from '../../utils';\nimport { range, setHours } from '../utils';\nvar HOURS_IN_DAY = 24;\nvar clampToRange = function (rangeValue) { return function (value) { return value % rangeValue; }; };\nvar clamp = clampToRange(HOURS_IN_DAY);\nvar stepper = function (start, step) { return function (idx) { return clamp(start + (idx * step)); }; };\nvar distanceFromMin = function (value, min) { return clamp(HOURS_IN_DAY + value - min); };\nvar limit = function (borderValue) { return function (barrier, value) {\n var useBarrier = !value || getDate(barrier).getTime() === getDate(value).getTime();\n return useBarrier ? barrier : setHours(barrier, borderValue);\n}; };\nvar limitDown = limit(0);\nvar limitUp = limit(HOURS_IN_DAY - 1);\n/**\n * @hidden\n */\nvar HoursService = /** @class */ (function () {\n function HoursService(intl) {\n this.intl = intl;\n this.boundRange = false;\n this.insertUndividedMax = false;\n }\n HoursService.prototype.apply = function (value, candidate) {\n return setHours(value, candidate.getHours());\n };\n HoursService.prototype.configure = function (settings) {\n var _this = this;\n var _a = settings.boundRange, boundRange = _a === void 0 ? this.boundRange : _a, _b = settings.insertUndividedMax, insertUndividedMax = _b === void 0 ? this.insertUndividedMax : _b, _c = settings.min, min = _c === void 0 ? this.min : _c, _d = settings.max, max = _d === void 0 ? this.max : _d, part = settings.part, _e = settings.step, step = _e === void 0 ? this.step : _e;\n this.boundRange = boundRange;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = function (hour) {\n var date = setHours(MIDNIGHT_DATE, hour);\n return {\n text: _this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n };\n HoursService.prototype.data = function (selectedValue) {\n var _this = this;\n var min = this.range(selectedValue)[0];\n var getHour = stepper(min, this.step);\n var convertToItem = function (idx) { return (_this.toListItem(getHour(idx))); };\n var data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n if (selectedValue) {\n this.addMissing(data, selectedValue);\n }\n return data;\n };\n HoursService.prototype.isRangeChanged = function (min, max) {\n return !isEqual(this.min, min) || !isEqual(this.max, max);\n };\n HoursService.prototype.limitRange = function (min, max, value) {\n return this.boundRange ? [limitDown(min, value), limitUp(max, value)] : [min, max];\n };\n HoursService.prototype.total = function (value) {\n var last = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n var missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last;\n };\n HoursService.prototype.selectedIndex = function (value) {\n return Math.ceil(this.divideByStep(value));\n };\n HoursService.prototype.valueInList = function (value) {\n if (!value) {\n return true;\n }\n var matchMax = this.insertUndividedMax && this.lastHour(value) === value.getHours();\n return matchMax || !this.isMissing(value);\n };\n HoursService.prototype.addLast = function (data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value)) {\n data.push(this.toListItem(this.lastHour(value)));\n }\n return data;\n };\n HoursService.prototype.addMissing = function (data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n var missingItem = this.toListItem(value.getHours());\n data.splice(this.selectedIndex(value), 0, missingItem);\n return data;\n };\n HoursService.prototype.countFromMin = function (value) {\n var _a = this.range(value), min = _a[0], max = _a[1];\n return Math.floor(distanceFromMin(max, min) / this.step) + 1; /* include min */\n };\n HoursService.prototype.isMissing = function (value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n };\n HoursService.prototype.isLastMissing = function (value) {\n return this.isMissing(setHours(this.max, this.lastHour(value)));\n };\n HoursService.prototype.divideByStep = function (value) {\n return distanceFromMin(value.getHours(), this.min.getHours()) / this.step;\n };\n HoursService.prototype.lastHour = function (value) {\n return this.range(value)[1];\n };\n HoursService.prototype.range = function (value) {\n var _a = this.limitRange(this.min, this.max, value), min = _a[0], max = _a[1];\n return [min.getHours(), max.getHours()];\n };\n return HoursService;\n}());\nexport { HoursService };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _a, _b;\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { Keys, noop } from '@progress/kendo-react-common';\nimport { provideIntlService, registerForIntl } from '@progress/kendo-react-intl';\nimport { Virtualization } from '../virtualization/Virtualization';\nimport { TIME_PART } from './models';\nimport { SecondsService, MinutesService, HoursService, DayPeriodService, DOMService } from './services';\nimport { MAX_TIME, MIDNIGHT_DATE } from '../utils';\nvar SCROLL_THRESHOLD = 2; // < 2px threshold\nvar SNAP_THRESHOLD = 0.05; // % of the item height\nvar SKIP = 0;\nvar getters = (_a = {},\n _a[Keys.end] = function (data, _) { return data[data.length - 1]; },\n _a[Keys.home] = function (data, _) { return data[0]; },\n _a[Keys.up] = function (data, index) { return data[index - 1]; },\n _a[Keys.down] = function (data, index) { return data[index + 1]; },\n _a);\nvar services = (_b = {},\n _b[TIME_PART.dayperiod] = DayPeriodService,\n _b[TIME_PART.hour] = HoursService,\n _b[TIME_PART.minute] = MinutesService,\n _b[TIME_PART.second] = SecondsService,\n _b);\n/**\n * @hidden\n */\nvar TimeList = /** @class */ (function (_super) {\n __extends(TimeList, _super);\n function TimeList(props) {\n var _this = _super.call(this, props) || this;\n _this.animateToIndex = false;\n _this.focus = function (args) {\n Promise.resolve().then(function () {\n if (!_this.element) {\n return;\n }\n _this.element.focus(args);\n });\n };\n _this.itemOffset = function (scrollTop) {\n if (!_this.virtualization) {\n return -1;\n }\n var valueIndex = _this.service.selectedIndex(_this.props.value);\n var activeIndex = _this.virtualization.activeIndex();\n var offset = _this.virtualization.itemOffset(activeIndex);\n var distance = Math.abs(Math.ceil(scrollTop) - offset);\n if (valueIndex === activeIndex && distance < SCROLL_THRESHOLD) {\n return offset;\n }\n var scrollUp = valueIndex > activeIndex;\n var moveToNext = scrollUp && distance >= _this.bottomThreshold || !scrollUp && distance > _this.topThreshold;\n return moveToNext ? _this.virtualization.itemOffset(activeIndex + 1) : offset;\n };\n _this.calculateHeights = function () {\n if (!_this.dom.didCalculate) {\n return;\n }\n _this.itemHeight = _this.dom.itemHeight;\n _this.listHeight = _this.dom.timeListHeight;\n _this.topOffset = (_this.listHeight - _this.itemHeight) / 2;\n _this.bottomOffset = _this.listHeight - _this.itemHeight;\n _this.topThreshold = _this.itemHeight * SNAP_THRESHOLD;\n _this.bottomThreshold = _this.itemHeight * (1 - SNAP_THRESHOLD);\n };\n _this.configureServices = function (_a) {\n var _b = _a === void 0 ? _this.props : _a, min = _b.min, max = _b.max, value = _b.value;\n var _c = _this.service.limitRange(min || _this.min, max || _this.max, value || _this.props.value), newMin = _c[0], newMax = _c[1];\n _this.service.configure(_this.serviceSettings({ min: newMin, max: newMax }));\n };\n _this.serviceSettings = function (settings) {\n var defaults = {\n boundRange: _this.props.boundRange || TimeList.defaultProps.boundRange,\n insertUndividedMax: false,\n min: cloneDate(_this.min),\n max: cloneDate(_this.max),\n part: _this.props.part,\n step: _this.step\n };\n var result = Object.assign({}, defaults, settings);\n result.boundRange = result.part.type !== 'hour' || _this.props.boundRange || TimeList.defaultProps.boundRange;\n return result;\n };\n _this.handleScrollAction = function (_a) {\n var target = _a.target, animationInProgress = _a.animationInProgress;\n if (!_this.virtualization) {\n return;\n }\n if (target && !animationInProgress) {\n _this.animateToIndex = false;\n var index = _this.virtualization.itemIndex(_this.itemOffset(target.scrollTop));\n var dataItem = _this.service.data(_this.props.value)[index];\n _this.handleChange(dataItem);\n }\n };\n _this.handleFocus = function (event) {\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus.call(undefined, event);\n }\n };\n _this.handleBlur = function (event) {\n var onBlur = _this.props.onBlur;\n if (onBlur) {\n onBlur.call(undefined, event);\n }\n };\n _this.handleMouseOver = function () {\n if (!_this._element) {\n return;\n }\n if (document && document.activeElement !== _this._element) {\n _this._element.focus({ preventScroll: true });\n }\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode;\n if (keyCode === Keys.down\n || keyCode === Keys.up\n || keyCode === Keys.end\n || keyCode === Keys.home) {\n event.preventDefault();\n }\n var getter = getters[event.keyCode] || noop;\n var dataItem = getter(_this.service.data(_this.props.value), _this.service.selectedIndex(_this.props.value));\n if (dataItem) {\n _this.handleChange(dataItem);\n }\n };\n _this.handleChange = function (dataItem) {\n var candidate = _this.service.apply(_this.props.value, dataItem.value);\n if (_this.props.value.getTime() === candidate.getTime()) {\n return;\n }\n _this.setState({\n value: candidate\n });\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, candidate);\n }\n };\n _this.dom = new DOMService();\n return _this;\n }\n Object.defineProperty(TimeList.prototype, \"element\", {\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeList.prototype, \"animate\", {\n get: function () {\n return Boolean(this.props.smoothScroll && this.animateToIndex);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeList.prototype, \"min\", {\n get: function () {\n return this.props.min || TimeList.defaultProps.min;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeList.prototype, \"max\", {\n get: function () {\n return this.props.max || TimeList.defaultProps.max;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeList.prototype, \"step\", {\n get: function () {\n return this.props.step !== undefined && this.props.step !== 0\n ? Math.floor(this.props.step)\n : TimeList.defaultProps.step;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n TimeList.prototype.componentDidMount = function () {\n var _this = this;\n // Async calculation of height to avoid animation cancellation\n Promise.resolve().then(function () {\n if (!_this._element) {\n return;\n }\n _this.dom.calculateHeights(_this._element);\n _this.forceUpdate();\n });\n };\n /**\n * @hidden\n */\n TimeList.prototype.componentDidUpdate = function () {\n if (!this.virtualization) {\n return;\n }\n var index = this.service.selectedIndex(this.props.value);\n this.virtualization[this.animate ? 'animateToIndex' : 'scrollToIndex'](index);\n this.animateToIndex = true;\n };\n /**\n * @hidden\n */\n TimeList.prototype.render = function () {\n var _this = this;\n if (!this.props.part.type || !services[this.props.part.type]) {\n return;\n }\n this.calculateHeights();\n this.intl = provideIntlService(this);\n this.service = new services[this.props.part.type](this.intl);\n this.configureServices();\n var data = this.service.data(this.props.value);\n var transform = 'translateY(' + this.topOffset + 'px)';\n var total = this.service.total(this.props.value);\n var list = (React.createElement(\"ul\", { style: { transform: transform, msTransform: transform }, className: \"k-reset\" }, data.map(function (item, idx) {\n return (React.createElement(\"li\", { key: idx, className: \"k-item\", onClick: function () { _this.handleChange(item); } },\n React.createElement(\"span\", null, item.text)));\n })));\n return (React.createElement(\"div\", { className: \"k-time-list\", id: String(this.props.id || ''), tabIndex: this.props.disabled ? -1 : 0, ref: function (el) { _this._element = el; }, onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseOver: this.handleMouseOver }, this.dom.didCalculate\n ? (React.createElement(Virtualization, { bottomOffset: this.bottomOffset, children: list, className: \"k-time-container\", itemHeight: this.itemHeight, maxScrollDifference: this.listHeight, onScrollAction: this.handleScrollAction, ref: function (el) { _this.virtualization = el; }, role: \"presentation\", skip: SKIP, tabIndex: -1, take: total, topOffset: this.topOffset, total: total }))\n : (React.createElement(\"div\", { className: \"k-time-container\" }, list))));\n };\n TimeList.propTypes = {\n id: PropTypes.number,\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n part: function (props, propName, componentName) {\n var prop = props[propName];\n if (!prop || !services[prop.type]) {\n throw new Error(\"\\n Invalid prop '\" + propName + \"' supplied to \" + componentName + \".\\n Supported part types are hour|minute|second|dayperiod.\\n \");\n }\n return null;\n },\n step: function (props, propName, componentName) {\n var prop = props[propName];\n if (prop !== undefined && prop <= 0) {\n throw new Error(\"\\n Invalid prop '\" + propName + \"' supplied to \" + componentName + \".\\n \" + propName + \" cannot be less than 1.\\n \");\n }\n return null;\n },\n value: PropTypes.instanceOf(Date),\n smoothScroll: PropTypes.bool\n };\n TimeList.defaultProps = {\n boundRange: false,\n max: MAX_TIME,\n min: MIDNIGHT_DATE,\n step: 1,\n smoothScroll: true\n };\n return TimeList;\n}(React.Component));\nexport { TimeList };\nregisterForIntl(TimeList);\n","import { domContainerFactory as containerFactory } from '../../utils';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n this.didCalculate = false;\n }\n DOMService.prototype.ensureHeights = function () {\n if (this.timeListHeight !== undefined) {\n return;\n }\n this.calculateHeights();\n };\n DOMService.prototype.calculateHeights = function (container) {\n if (!canUseDOM) {\n return;\n }\n var div = containerFactory('div');\n var ul = containerFactory('ul');\n var li = containerFactory('li');\n var listItem = function () { return li('02', 'k-item'); };\n var list = function () { return ul([listItem()], 'k-reset'); };\n var scrollable = function () { return (div([list()], 'k-time-container k-content k-scrollable')); };\n var timeListWrapper = function () {\n return div([div([scrollable()], 'k-time-list')], 'k-time-list-wrapper', { left: '-10000px', position: 'absolute' });\n };\n var timeWrapper = timeListWrapper();\n var listContainer = container && container.querySelector('.k-time-container');\n var hostContainer = listContainer || document.body;\n var wrapper = hostContainer.appendChild(timeWrapper);\n this.timeListHeight = wrapper.querySelector('.k-scrollable').offsetHeight;\n this.itemHeight = wrapper.querySelector('li').offsetHeight;\n hostContainer.removeChild(wrapper);\n this.didCalculate = true;\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { isEqual } from '@progress/kendo-date-math';\nimport { MIDNIGHT_DATE } from '../../utils';\nimport { range, setMinutes } from '../utils';\nvar MINUTES_IN_HOUR = 60;\nvar clampToRange = function (rangeValue) { return function (value) { return value % rangeValue; }; };\nvar clamp = clampToRange(MINUTES_IN_HOUR);\nvar stepper = function (start, step) { return function (idx) { return clamp(start + (idx * step)); }; };\nvar distanceFromMin = function (value, min) { return clamp(MINUTES_IN_HOUR + value - min); };\nvar limit = function (borderValue) { return function (barrier, value) {\n var useBarrier = !value || barrier.getHours() === value.getHours();\n return useBarrier ? barrier : setMinutes(barrier, borderValue);\n}; };\nvar limitDown = limit(0);\nvar limitUp = limit(MINUTES_IN_HOUR - 1);\n/**\n * @hidden\n */\nvar MinutesService = /** @class */ (function () {\n function MinutesService(intl) {\n this.intl = intl;\n this.insertUndividedMax = false;\n }\n MinutesService.prototype.apply = function (value, candidate) {\n return setMinutes(value, candidate.getMinutes());\n };\n MinutesService.prototype.configure = function (settings) {\n var _this = this;\n var _a = settings.insertUndividedMax, insertUndividedMax = _a === void 0 ? this.insertUndividedMax : _a, _b = settings.min, min = _b === void 0 ? this.min : _b, _c = settings.max, max = _c === void 0 ? this.max : _c, part = settings.part, _d = settings.step, step = _d === void 0 ? this.step : _d;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = function (minute) {\n var date = setMinutes(MIDNIGHT_DATE, minute);\n return {\n text: _this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n };\n MinutesService.prototype.data = function (selectedValue) {\n var _this = this;\n var min = this.range(selectedValue)[0];\n var getMinute = stepper(min, this.step);\n var convertToItem = function (idx) { return (_this.toListItem(getMinute(idx))); };\n var data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n if (selectedValue) {\n this.addMissing(data, selectedValue);\n }\n return data;\n };\n MinutesService.prototype.isRangeChanged = function (min, max) {\n return !isEqual(this.min, min) || !isEqual(this.max, max);\n };\n MinutesService.prototype.limitRange = function (min, max, value) {\n return [limitDown(min, value), limitUp(max, value)];\n };\n MinutesService.prototype.total = function (value) {\n var last = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n var missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last;\n };\n MinutesService.prototype.selectedIndex = function (value) {\n return Math.ceil(this.divideByStep(value));\n };\n MinutesService.prototype.valueInList = function (value) {\n if (!value) {\n return true;\n }\n var matchMax = this.insertUndividedMax && this.lastMinute(value) === value.getMinutes();\n return matchMax || !this.isMissing(value);\n };\n MinutesService.prototype.addLast = function (data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value)) {\n data.push(this.toListItem(this.lastMinute(value)));\n }\n return data;\n };\n MinutesService.prototype.addMissing = function (data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n var missingItem = this.toListItem(value.getMinutes());\n data.splice(this.selectedIndex(value), 0, missingItem);\n return data;\n };\n MinutesService.prototype.countFromMin = function (value) {\n var _a = this.range(value), min = _a[0], max = _a[1];\n return Math.floor(distanceFromMin(max, min) / this.step) + 1; /* include min */\n };\n MinutesService.prototype.isMissing = function (value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n };\n MinutesService.prototype.isLastMissing = function (value) {\n return this.isMissing(setMinutes(this.max, this.lastMinute(value)));\n };\n MinutesService.prototype.divideByStep = function (value) {\n return distanceFromMin(value.getMinutes(), this.min.getMinutes()) / this.step;\n };\n MinutesService.prototype.lastMinute = function (value) {\n return this.range(value)[1];\n };\n MinutesService.prototype.range = function (value) {\n var _a = this.limitRange(this.min, this.max, value), min = _a[0], max = _a[1];\n return [min.getMinutes(), max.getMinutes()];\n };\n return MinutesService;\n}());\nexport { MinutesService };\n","import { isEqual } from '@progress/kendo-date-math';\nimport { MIDNIGHT_DATE } from '../../utils';\nimport { range, setSeconds } from '../utils';\nvar SECONDS_IN_HOUR = 60;\nvar clampToRange = function (rangeValue) { return function (value) { return value % rangeValue; }; };\nvar clamp = clampToRange(SECONDS_IN_HOUR);\nvar stepper = function (start, step) { return function (idx) { return clamp(start + (idx * step)); }; };\nvar distanceFromMin = function (value, min) { return clamp(SECONDS_IN_HOUR + value - min); };\nvar limit = function (borderValue) { return function (barrier, value) {\n var useBarrier = !value ||\n (barrier.getMinutes() === value.getMinutes() && barrier.getHours() === value.getHours());\n return useBarrier ? barrier : setSeconds(barrier, borderValue);\n}; };\nvar limitDown = limit(0);\nvar limitUp = limit(SECONDS_IN_HOUR - 1);\n/**\n * @hidden\n */\nvar SecondsService = /** @class */ (function () {\n function SecondsService(intl) {\n this.intl = intl;\n this.insertUndividedMax = false;\n }\n SecondsService.prototype.apply = function (value, candidate) {\n return setSeconds(value, candidate.getSeconds());\n };\n SecondsService.prototype.configure = function (settings) {\n var _this = this;\n var _a = settings.insertUndividedMax, insertUndividedMax = _a === void 0 ? this.insertUndividedMax : _a, _b = settings.min, min = _b === void 0 ? this.min : _b, _c = settings.max, max = _c === void 0 ? this.max : _c, part = settings.part, _d = settings.step, step = _d === void 0 ? this.step : _d;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = function (minute) {\n var date = setSeconds(MIDNIGHT_DATE, minute);\n return {\n text: _this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n };\n SecondsService.prototype.data = function (selectedValue) {\n var _this = this;\n var min = this.range(selectedValue)[0];\n var getSecond = stepper(min, this.step);\n var convertToItem = function (idx) { return (_this.toListItem(getSecond(idx))); };\n var data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n if (selectedValue) {\n this.addMissing(data, selectedValue);\n }\n return data;\n };\n SecondsService.prototype.isRangeChanged = function (min, max) {\n return !isEqual(this.min, min) || !isEqual(this.max, max);\n };\n SecondsService.prototype.limitRange = function (min, max, value) {\n return [limitDown(min, value), limitUp(max, value)];\n };\n SecondsService.prototype.total = function (value) {\n var last = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n var missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last;\n };\n SecondsService.prototype.selectedIndex = function (value) {\n return Math.ceil(this.divideByStep(value));\n };\n SecondsService.prototype.valueInList = function (value) {\n if (!value) {\n return true;\n }\n var matchMax = this.insertUndividedMax && this.lastSecond(value) === value.getSeconds();\n return matchMax || !this.isMissing(value);\n };\n SecondsService.prototype.divideByStep = function (value) {\n return distanceFromMin(value.getSeconds(), this.min.getSeconds()) / this.step;\n };\n SecondsService.prototype.addLast = function (data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value)) {\n data.push(this.toListItem(this.lastSecond(value)));\n }\n return data;\n };\n SecondsService.prototype.addMissing = function (data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n var missingItem = this.toListItem(value.getSeconds());\n data.splice(this.selectedIndex(value), 0, missingItem);\n return data;\n };\n SecondsService.prototype.countFromMin = function (value) {\n var _a = this.range(value), min = _a[0], max = _a[1];\n return Math.floor(distanceFromMin(max, min) / this.step) + 1; /* include min */\n };\n SecondsService.prototype.isMissing = function (value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n };\n SecondsService.prototype.isLastMissing = function (value) {\n return this.isMissing(setSeconds(this.max, this.lastSecond(value)));\n };\n SecondsService.prototype.lastSecond = function (value) {\n return this.range(value)[1];\n };\n SecondsService.prototype.range = function (value) {\n var _a = this.limitRange(this.min, this.max, value), min = _a[0], max = _a[1];\n return [min.getSeconds(), max.getSeconds()];\n };\n return SecondsService;\n}());\nexport { SecondsService };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { classNames, Keys } from '@progress/kendo-react-common';\nimport { provideIntlService, provideLocalizationService, registerForIntl, registerForLocalization } from '@progress/kendo-react-intl';\nimport { messages, now, selectNow } from '../messages';\nimport { TimeList } from './TimeList';\nimport { MIDNIGHT_DATE, MIN_TIME, MAX_TIME } from '../utils';\nimport { TIME_PART } from './models/TimePart';\nimport { generateSnappers, getNow, isInTimeRange, snapTime, timeInRange } from './utils';\nimport { Button } from '@progress/kendo-react-buttons';\nvar formatRegExp = new RegExp(TIME_PART.hour + \"|\" + TIME_PART.minute + \"|\" + TIME_PART.second + \"|\" + TIME_PART.dayperiod + \"|literal\");\n/**\n * @hidden\n */\nexport var Direction;\n(function (Direction) {\n Direction[Direction[\"Left\"] = 0] = \"Left\";\n Direction[Direction[\"Right\"] = 1] = \"Right\";\n})(Direction || (Direction = {}));\n/**\n * @hidden\n */\nvar TimePart = /** @class */ (function (_super) {\n __extends(TimePart, _super);\n function TimePart(props) {\n var _this = _super.call(this, props) || this;\n _this.timeLists = [];\n _this.focus = function (args) {\n Promise.resolve().then(function () {\n var timeList = _this.timeLists[0];\n if ((_this.state.activeListIndex === -1) && !_this.hasActiveButton() && timeList && timeList.element) {\n timeList.focus(args);\n }\n });\n };\n _this.timeFormatReducer = function (acc, current) { return acc + current.pattern; };\n // Filtering only the time part of the format.\n // Literal types are added if the previous part is\n // part of a time format.\n _this.timeFormatFilter = function (part, index, all) {\n var prevItem = index >= 1 && all[index - 1];\n if (!prevItem) {\n return formatRegExp.test(part.type || '');\n }\n if (prevItem && part.type === 'literal') {\n return formatRegExp.test(prevItem.type || '');\n }\n return formatRegExp.test(part.type || '');\n };\n _this.focusList = function (dir) {\n if (!_this.timeLists.length) {\n return;\n }\n _this.timeLists.reduce(_this.listReducer, ([]))\n .map(function (state) { return dir === Direction.Right ? state.next : state.prev; })\n .map(function (list) { return list && list.element && list.element.focus({ preventScroll: true }); });\n };\n _this.listReducer = function (state, list, idx, all) {\n if (state.length || list.props.id !== _this.state.activeListIndex) {\n return state;\n }\n return [{\n next: all[idx + 1] || list,\n prev: all[idx - 1] || list\n }];\n };\n _this.showNowButton = function () {\n return !_this.hasSteps() && _this.props.nowButton && isInTimeRange(getNow(), _this.min, _this.max);\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode;\n switch (keyCode) {\n case Keys.left:\n event.preventDefault();\n _this.focusList(Direction.Left);\n return;\n case Keys.right:\n event.preventDefault();\n _this.focusList(Direction.Right);\n return;\n default:\n return;\n }\n };\n _this.handleListBlur = function () {\n _this.nextTick(function () {\n _this.setState({ activeListIndex: -1 });\n });\n };\n _this.handleListFocus = function (idx) {\n clearTimeout(_this.nextTickId);\n _this.setState({\n activeListIndex: idx\n });\n };\n _this.handleChange = function (candidate) {\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, candidate);\n }\n };\n _this.snapTime = snapTime(generateSnappers(_this.props.steps, _this.props.min || TimePart.defaultProps.min));\n _this.state = {\n activeListIndex: -1\n };\n _this.hasActiveButton = _this.hasActiveButton.bind(_this);\n return _this;\n }\n Object.defineProperty(TimePart.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"value\", {\n get: function () {\n return timeInRange(this.snapTime(cloneDate(this.props.value || MIDNIGHT_DATE)), this.min, this.max);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"intl\", {\n get: function () {\n return provideIntlService(this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"min\", {\n get: function () {\n return this.snapTime(this.props.min || TimePart.defaultProps.min);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"max\", {\n get: function () {\n return this.snapTime(this.props.max || TimePart.defaultProps.max);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"steps\", {\n get: function () {\n return this.props.steps || TimePart.defaultProps.steps;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"boundRange\", {\n get: function () {\n return this.props.boundRange !== undefined\n ? this.props.boundRange\n : TimePart.defaultProps.boundRange;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n TimePart.prototype.componentWillUnmount = function () {\n clearTimeout(this.nextTickId);\n };\n TimePart.prototype.componentDidMount = function () {\n var onMount = this.props.onMount;\n if (onMount) {\n onMount.call(undefined, this.value);\n }\n };\n /**\n * @hidden\n */\n TimePart.prototype.render = function () {\n var _this = this;\n var _a = this.props, format = _a.format, smoothScroll = _a.smoothScroll, onNowClick = _a.onNowClick, className = _a.className, disabled = _a.disabled;\n this.snapTime = snapTime(generateSnappers(this.steps, this.min));\n this.dateFormatParts = this.intl\n .splitDateFormat(format || TimePart.defaultProps.format)\n .filter(this.timeFormatFilter);\n var rootClassName = classNames({\n 'k-state-disabled': disabled\n }, className, 'k-time-part');\n this.timeLists = [];\n var localizationService = provideLocalizationService(this);\n var selectNowMessage = localizationService.toLanguageString(selectNow, messages[selectNow]);\n return (React.createElement(\"div\", { className: rootClassName },\n React.createElement(\"div\", { className: \"k-time-header\" },\n React.createElement(\"span\", { className: \"k-title\" }, this.intl.formatDate(this.value, this.dateFormatParts.reduce(this.timeFormatReducer, ''))),\n this.showNowButton() &&\n React.createElement(Button, __assign({ type: \"button\", ref: function (btn) { _this._nowButton = btn; }, className: \"k-time-now\", look: \"flat\", primary: true, title: selectNowMessage }, { 'aria-label': selectNowMessage }, { onClick: onNowClick, tabIndex: disabled ? -1 : 0 }), localizationService.toLanguageString(now, messages[now]))),\n React.createElement(\"div\", { className: \"k-time-list-container\", onKeyDown: this.handleKeyDown },\n React.createElement(\"span\", { className: \"k-time-highlight\" }),\n this.dateFormatParts.map(function (part, idx) {\n return (part.type !== 'literal'\n ? React.createElement(\"div\", { key: idx, className: classNames('k-time-list-wrapper', {\n 'k-state-focused': idx === _this.state.activeListIndex\n }), role: \"presentation\", tabIndex: -1 },\n React.createElement(\"span\", { className: \"k-title\", onMouseDown: function (e) { e.preventDefault(); } }, _this.intl.dateFieldName(part)),\n React.createElement(TimeList, { min: _this.min, max: _this.max, boundRange: _this.boundRange, part: part, step: part.type ? _this.steps[part.type] : 1, smoothScroll: smoothScroll, ref: function (el) { if (!el) {\n return;\n } _this.timeLists.push(el); }, id: idx, onFocus: function () { _this.handleListFocus(idx); }, onBlur: _this.handleListBlur, onChange: _this.handleChange, value: _this.value, disabled: disabled }))\n : React.createElement(\"div\", { key: idx, className: \"k-time-separator\" }, part.pattern));\n }))));\n };\n TimePart.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n TimePart.prototype.hasActiveButton = function () {\n return (this._nowButton && document.activeElement === this._nowButton.element);\n };\n TimePart.prototype.hasSteps = function () {\n var _this = this;\n var keys = Object.keys(this.steps);\n return keys.length !== keys.reduce(function (acc, k) { return acc + _this.steps[k]; }, 0);\n };\n TimePart.propTypes = {\n cancelButton: PropTypes.bool,\n disabled: PropTypes.bool,\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n nowButton: PropTypes.bool,\n steps: PropTypes.shape({\n hour: PropTypes.number,\n minute: PropTypes.number,\n second: PropTypes.number\n }),\n smoothScroll: PropTypes.bool,\n tabIndex: PropTypes.number,\n value: PropTypes.instanceOf(Date)\n };\n TimePart.defaultProps = {\n value: null,\n disabled: false,\n nowButton: true,\n cancelButton: true,\n format: 'hh:mm a',\n min: MIN_TIME,\n max: MAX_TIME,\n steps: {},\n boundRange: false\n };\n return TimePart;\n}(React.Component));\nexport { TimePart };\nregisterForIntl(TimePart);\nregisterForLocalization(TimePart);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { classNames, Keys } from '@progress/kendo-react-common';\nimport { provideIntlService, registerForIntl, registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, timePickerCancel, timePickerSet } from '../messages';\nimport { MIN_TIME, MAX_TIME, MIDNIGHT_DATE } from '../utils';\nimport { generateGetters, getNow, valueMerger } from './utils';\nimport { TimePart } from './TimePart';\nimport { Button } from '@progress/kendo-react-buttons';\n/**\n * @hidden\n */\nexport var Direction;\n(function (Direction) {\n Direction[Direction[\"Left\"] = 0] = \"Left\";\n Direction[Direction[\"Right\"] = 1] = \"Right\";\n})(Direction || (Direction = {}));\n/**\n * @hidden\n */\nvar TimeSelector = /** @class */ (function (_super) {\n __extends(TimeSelector, _super);\n function TimeSelector(props) {\n var _this = _super.call(this, props) || this;\n _this.focusActiveList = function () {\n if (!_this.timePart) {\n return;\n }\n _this.timePart.focus({ preventScroll: true });\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode;\n switch (keyCode) {\n case Keys.enter:\n if (!_this.hasActiveButton()) {\n _this.handleAccept(event);\n }\n return;\n default:\n return;\n }\n };\n _this.handleAccept = function (event) {\n var value = _this.mergeValue(cloneDate(_this.value || getNow()), _this.timePart ? _this.timePart.value : _this.current);\n _this.setState({ value: value });\n _this.valueDuringOnChange = value;\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n };\n _this.handleReject = function (event) {\n _this.setState({ current: _this.value });\n var onReject = _this.props.onReject;\n if (onReject) {\n onReject.call(undefined, event);\n }\n };\n _this.handleNowClick = function (event) {\n var now = _this.mergeValue(cloneDate(_this.value || getNow()), getNow());\n _this.setState({\n current: now,\n value: now\n });\n _this.valueDuringOnChange = now;\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n };\n _this.handleChange = function (candidate) {\n _this.setState({ current: candidate });\n };\n _this.dateFormatParts = _this.intl.splitDateFormat(_this.props.format || TimeSelector.defaultProps.format);\n _this.mergeValue = valueMerger(generateGetters(_this.dateFormatParts));\n _this.hasActiveButton = _this.hasActiveButton.bind(_this);\n _this.state = {\n current: _this.props.value || MIDNIGHT_DATE,\n value: _this.props.value || TimeSelector.defaultProps.value\n };\n return _this;\n }\n Object.defineProperty(TimeSelector.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeSelector.prototype, \"value\", {\n get: function () {\n var value = this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n return (value !== null)\n ? cloneDate(value)\n : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeSelector.prototype, \"intl\", {\n get: function () {\n return provideIntlService(this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimeSelector.prototype, \"current\", {\n get: function () {\n return this.state.current !== null\n ? cloneDate(this.state.current)\n : null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n TimeSelector.prototype.componentWillUnmount = function () {\n clearTimeout(this.nextTickId);\n };\n /**\n * @hidden\n */\n TimeSelector.prototype.render = function () {\n var _this = this;\n var _a = this.props, format = _a.format, cancelButton = _a.cancelButton, disabled = _a.disabled, tabIndex = _a.tabIndex, className = _a.className, smoothScroll = _a.smoothScroll, min = _a.min, max = _a.max, boundRange = _a.boundRange, nowButton = _a.nowButton, steps = _a.steps;\n var localizationService = provideLocalizationService(this);\n var cancelMessage = localizationService.toLanguageString(timePickerCancel, messages[timePickerCancel]);\n var setMessage = localizationService.toLanguageString(timePickerSet, messages[timePickerSet]);\n return (React.createElement(\"div\", { ref: function (el) { _this._element = el; }, tabIndex: !disabled ? tabIndex || 0 : undefined, className: classNames('k-timeselector k-reset', className, {\n 'k-state-disabled': disabled\n }), onKeyDown: this.handleKeyDown },\n React.createElement(TimePart, { ref: function (el) { _this.timePart = el; }, value: this.current, onChange: this.handleChange, onNowClick: this.handleNowClick, format: format, smoothScroll: smoothScroll, min: min, max: max, boundRange: boundRange, disabled: disabled, nowButton: nowButton, steps: steps }),\n React.createElement(\"div\", { className: \"k-time-footer k-actions k-hstack k-justify-content-stretch\" },\n cancelButton &&\n React.createElement(Button, __assign({ type: \"button\", ref: function (btn) { _this._cancelButton = btn; }, className: \"k-time-cancel\", onClick: this.handleReject, title: cancelMessage }, { 'aria-label': cancelMessage }), cancelMessage),\n React.createElement(Button, __assign({ type: \"button\", ref: function (btn) { _this._acceptButton = btn; }, className: \"k-time-accept\", primary: true, onClick: this.handleAccept, title: setMessage }, { 'aria-label': setMessage }), setMessage))));\n };\n TimeSelector.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n TimeSelector.prototype.hasActiveButton = function () {\n if (!this._acceptButton || !this._acceptButton.element) {\n return false;\n }\n return (this._acceptButton && document.activeElement === this._acceptButton.element)\n || (this._cancelButton && document.activeElement === this._cancelButton.element);\n };\n TimeSelector.propTypes = {\n cancelButton: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n nowButton: PropTypes.bool,\n steps: PropTypes.shape({\n hour: PropTypes.number,\n minute: PropTypes.number,\n second: PropTypes.number\n }),\n smoothScroll: PropTypes.bool,\n tabIndex: PropTypes.number,\n value: PropTypes.instanceOf(Date)\n };\n TimeSelector.defaultProps = {\n value: null,\n disabled: false,\n cancelButton: true,\n format: 't',\n min: MIN_TIME,\n max: MAX_TIME,\n boundRange: false\n };\n return TimeSelector;\n}(React.Component));\nexport { TimeSelector };\nregisterForIntl(TimeSelector);\nregisterForLocalization(TimeSelector);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { classNames, guid, Keys, AsyncFocusBlur } from '@progress/kendo-react-common';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { messages, toggleTimeSelector, toggleClock } from '../messages';\nimport { DateInput } from '../dateinput/DateInput';\nimport { TimeSelector } from './TimeSelector';\nimport { MIDNIGHT_DATE, MIN_TIME, MAX_TIME, setTime } from '../utils';\nimport { isInRange, isSmallerThanMin, isBiggerThanMax } from './utils';\nimport { PickerFloatingLabel } from '../hooks/usePickerFloatingLabel';\nvar TimePicker = /** @class */ (function (_super) {\n __extends(TimePicker, _super);\n function TimePicker(props) {\n var _this = _super.call(this, props) || this;\n _this._popupId = guid();\n _this._element = null;\n _this._wrapper = null;\n _this._dateInput = React.createRef();\n _this._timeSelector = null;\n _this.shouldFocusDateInput = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this.dateInput) {\n _this.dateInput.focus();\n }\n };\n _this.setTimeSelectorRef = function (timeSelector) {\n _this._timeSelector = timeSelector;\n };\n _this.nextValue = function (nextProps, nextState) {\n return nextProps.value !== undefined\n ? nextProps.value\n : nextState.value;\n };\n _this.nextShow = function (nextProps, nextState) {\n return nextProps.show !== undefined\n ? nextProps.show\n : nextState.show;\n };\n _this.handleInputValueChange = function (event) {\n var value = _this.mergeTime(event.value);\n _this.handleValueChange(__assign({}, event, { value: value }));\n };\n _this.handleValueChange = function (event) {\n _this.setState({\n value: cloneDate(event.value),\n show: false\n });\n _this.valueDuringOnChange = event.value;\n _this.showDuringOnChange = false;\n _this.shouldFocusDateInput = true;\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n show: _this.show,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n _this.showDuringOnChange = undefined;\n };\n _this.handleFocus = function () {\n _this.setState({ focused: true });\n };\n _this.handleBlur = function () {\n _this.setState({ focused: false });\n _this.setShow(false);\n };\n _this.handleValueReject = function (_) {\n _this.setShow(false);\n };\n _this.handleIconClick = function (_) {\n if (_this.props.disabled) {\n return;\n }\n _this.shouldFocusDateInput = true;\n _this.setShow(!_this.show);\n };\n _this.handleIconMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleKeyDown = function (event) {\n var altKey = event.altKey, keyCode = event.keyCode;\n if (keyCode === Keys.esc) {\n _this.shouldFocusDateInput = true;\n _this.setShow(false);\n return;\n }\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n _this.shouldFocusDateInput = keyCode === Keys.up;\n _this.setShow(keyCode === Keys.down);\n }\n };\n validatePackage(packageMetadata);\n _this.state = {\n value: _this.props.defaultValue || TimePicker.defaultProps.defaultValue,\n show: _this.props.defaultShow || TimePicker.defaultProps.defaultShow,\n focused: false\n };\n _this.normalizeTime = _this.normalizeTime.bind(_this);\n _this.setShow = _this.setShow.bind(_this);\n _this.nextTick = _this.nextTick.bind(_this);\n _this.mergeTime = _this.mergeTime.bind(_this);\n return _this;\n }\n Object.defineProperty(TimePicker.prototype, \"element\", {\n /**\n * Gets the wrapping element of the TimePicker.\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"dateInput\", {\n /**\n * Gets the DateInput component inside the TimePicker component.\n */\n get: function () {\n return this._dateInput.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"timeSelector\", {\n /**\n * Gets the TimeSelector component inside the TimePicker component.\n */\n get: function () {\n return this._timeSelector;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"value\", {\n /**\n * Gets the value of the TimePicker.\n */\n get: function () {\n var value = this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n return (value !== null) ? cloneDate(value) : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"show\", {\n /**\n * Gets the popup state of the TimeSelector.\n */\n get: function () {\n return this.showDuringOnChange !== undefined\n ? this.showDuringOnChange\n : this.props.show !== undefined\n ? this.props.show\n : this.state.show;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"name\", {\n /**\n * Gets the `name` property of the TimePicker.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"validity\", {\n /**\n * Represents the validity state into which the TimePicker is set.\n */\n get: function () {\n var value = this.value && this.normalizeTime(this.value);\n var min = this.normalizeTime(this.min);\n var max = this.normalizeTime(this.max);\n var inRange = isInRange(value, min, max);\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== null) && inRange;\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: isBiggerThanMax(value, max),\n rangeUnderflow: isSmallerThanMin(value, min),\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : TimePicker.defaultProps.validityStyles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : TimePicker.defaultProps.required;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"popupSettings\", {\n get: function () {\n return this.props.popupSettings || TimePicker.defaultProps.popupSettings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined ? this.props.min : TimePicker.defaultProps.min;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined ? this.props.max : TimePicker.defaultProps.max;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TimePicker.prototype, \"dateInputComp\", {\n get: function () {\n return this.props.dateInput || TimePicker.defaultProps.dateInput;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n TimePicker.prototype.componentDidMount = function () {\n if (this.show) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.forceUpdate();\n }\n };\n /**\n * @hidden\n */\n TimePicker.prototype.componentWillUnmount = function () {\n clearTimeout(this.nextTickId);\n };\n /**\n * @hidden\n */\n TimePicker.prototype.componentDidUpdate = function () {\n if (this._timeSelector && this.show && !this.prevShow) {\n this._timeSelector.focusActiveList();\n }\n else if (this.dateInput\n && this.dateInput.element\n && !this.show\n && this.shouldFocusDateInput) {\n this.dateInput.element.focus({ preventScroll: true });\n }\n this.prevShow = this.show;\n this.shouldFocusDateInput = false;\n };\n /**\n * @hidden\n */\n TimePicker.prototype.render = function () {\n var _this = this;\n var _a = this.props, disabled = _a.disabled, tabIndex = _a.tabIndex, title = _a.title, id = _a.id, className = _a.className, format = _a.format, formatPlaceholder = _a.formatPlaceholder, smoothScroll = _a.smoothScroll, width = _a.width, name = _a.name, steps = _a.steps, cancelButton = _a.cancelButton, nowButton = _a.nowButton, validationMessage = _a.validationMessage, required = _a.required, validityStyles = _a.validityStyles, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy;\n var _b = this.popupSettings, popupClass = _b.popupClass, otherPopupSettings = __rest(_b, [\"popupClass\"]);\n var isValid = !this.validityStyles || this.validity.valid;\n var rootClassName = classNames('k-widget k-timepicker', className);\n var wrapperClassNames = classNames('k-picker-wrap', {\n 'k-state-invalid': !isValid,\n 'k-state-disabled': disabled,\n 'k-state-focused': this.state.focused\n });\n var popupClassNames = classNames('k-group k-reset', popupClass);\n var dateInputProps = {\n disabled: disabled,\n format: format,\n formatPlaceholder: formatPlaceholder,\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n max: this.normalizeTime(this.max),\n min: this.normalizeTime(this.min),\n name: name,\n onChange: this.handleInputValueChange,\n required: required,\n steps: steps,\n tabIndex: !this.show ? tabIndex : -1,\n title: title,\n valid: this.validity.valid,\n validationMessage: validationMessage,\n validityStyles: validityStyles,\n value: this.value && this.normalizeTime(this.value),\n label: undefined,\n placeholder: !this.state.focused ? this.props.placeholder : null,\n ariaHasPopup: true,\n ariaExpanded: this.show\n };\n var popupProps = __assign({ show: this.show, animate: this._wrapper !== null, anchor: this._wrapper, className: popupClassNames, id: this._popupId, anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n }, popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n } }, otherPopupSettings);\n var timeSelector = (React.createElement(TimeSelector, { ref: this.setTimeSelectorRef, cancelButton: cancelButton, disabled: disabled, nowButton: nowButton, format: format, min: this.min, max: this.max, steps: steps, smoothScroll: smoothScroll, value: this.value, onChange: this.handleValueChange, onReject: this.handleValueReject }));\n var localizationService = provideLocalizationService(this);\n var toggleClockMessage = localizationService.toLanguageString(toggleClock, messages[toggleClock]);\n var toggleTimeMessage = localizationService\n .toLanguageString(toggleTimeSelector, messages[toggleTimeSelector]);\n var timepicker = (React.createElement(AsyncFocusBlur, { onFocus: this.handleFocus, onBlur: this.handleBlur, onSyncBlur: this.props.onBlur, onSyncFocus: this.props.onFocus }, function (_a) {\n var onFocus = _a.onFocus, onBlur = _a.onBlur;\n return (React.createElement(\"div\", { ref: function (span) { _this._element = span; }, className: rootClassName, onKeyDown: _this.handleKeyDown, style: { width: width }, onFocus: onFocus, onBlur: onBlur },\n React.createElement(\"span\", { ref: function (span) { _this._wrapper = span; }, className: wrapperClassNames },\n React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput }, dateInputProps)),\n React.createElement(\"span\", __assign({ role: \"button\", onMouseDown: _this.handleIconMouseDown, onClick: _this.handleIconClick, title: toggleTimeMessage, className: \"k-select\" }, {\n 'aria-controls': _this._popupId,\n 'aria-label': toggleClockMessage\n }),\n React.createElement(\"span\", { className: \"k-icon k-i-clock\" }))),\n _this.props.popup\n ? React.createElement(_this.props.popup, __assign({}, popupProps), timeSelector)\n : React.createElement(Popup, __assign({}, popupProps), timeSelector)));\n }));\n return this.props.label\n ? (React.createElement(PickerFloatingLabel, { dateInput: this._dateInput, label: this.props.label, editorId: id, editorValid: isValid, editorDisabled: this.props.disabled, children: timepicker, style: { width: this.props.width } }))\n : timepicker;\n };\n TimePicker.prototype.normalizeTime = function (date) {\n return setTime(MIDNIGHT_DATE, date);\n };\n TimePicker.prototype.setShow = function (show) {\n if (this.show === show) {\n return;\n }\n this.setState({ show: show });\n };\n TimePicker.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n TimePicker.prototype.mergeTime = function (value) {\n return this.value && value ? setTime(this.value, value) : value;\n };\n /**\n * @hidden\n */\n TimePicker.propTypes = {\n className: PropTypes.string,\n cancelButton: PropTypes.bool,\n nowButton: PropTypes.bool,\n defaultShow: PropTypes.bool,\n defaultValue: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n formatPlaceholder: PropTypes.oneOfType([\n PropTypes.oneOf(['wide', 'narrow', 'short', 'formatPattern']),\n PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string,\n hour: PropTypes.string,\n minute: PropTypes.string,\n second: PropTypes.string\n })\n ]),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n min: PropTypes.instanceOf(Date),\n max: PropTypes.instanceOf(Date),\n name: PropTypes.string,\n popupSettings: PropTypes.shape({\n animate: PropTypes.bool,\n appendTo: PropTypes.any,\n popupClass: PropTypes.string\n }),\n show: PropTypes.bool,\n steps: PropTypes.shape({\n hour: PropTypes.number,\n minute: PropTypes.number,\n second: PropTypes.number\n }),\n smoothScroll: PropTypes.bool,\n tabIndex: PropTypes.number,\n title: PropTypes.string,\n value: PropTypes.instanceOf(Date),\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool\n };\n /**\n * @hidden\n */\n TimePicker.defaultProps = {\n defaultShow: false,\n defaultValue: null,\n disabled: false,\n format: 't',\n max: MAX_TIME,\n min: MIN_TIME,\n popupSettings: {},\n tabIndex: 0,\n steps: {},\n required: false,\n validityStyles: true,\n dateInput: DateInput\n };\n return TimePicker;\n}(React.Component));\nexport { TimePicker };\nregisterForLocalization(TimePicker);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { View } from './View';\nimport { CalendarViewEnum } from '../models';\nimport { classNames } from '@progress/kendo-react-common';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { MAX_DATE, MIN_DATE } from '../../defaults';\nvar DEFAULT_FETCH_MONTHS_COUNT = 2;\n/**\n * @hidden\n */\nvar HorizontalViewList = /** @class */ (function (_super) {\n __extends(HorizontalViewList, _super);\n function HorizontalViewList(props) {\n var _this = _super.call(this, props) || this;\n _this.isActive = false;\n _this.focusActiveDate = function () {\n if (!_this._element) {\n return;\n }\n var focusedCell = _this._element.querySelector('td.k-state-focused');\n var nextActiveCell = _this._element.querySelector('.k-state-pending-focus');\n if (focusedCell && focusedCell[0]) {\n focusedCell[0].classList.remove('k-state-focused');\n }\n if (nextActiveCell) {\n nextActiveCell.classList.add('k-state-focused');\n }\n _this.isActive = true;\n };\n _this.blurActiveDate = function () {\n if (!_this._element) {\n return;\n }\n var focusedCell = _this._element.querySelector('td.k-state-focused');\n if (focusedCell) {\n focusedCell.classList.remove('k-state-focused');\n }\n _this.isActive = false;\n };\n _this.rotateSelectionRange = function (selectionRange) {\n if (selectionRange.start === null || selectionRange.end === null) {\n return selectionRange;\n }\n var needRotate = selectionRange.end < selectionRange.start;\n return {\n start: needRotate ? selectionRange.end : selectionRange.start,\n end: needRotate ? selectionRange.start : selectionRange.end\n };\n };\n _this.handleDateChange = function (event, isTodayClick) {\n if (isTodayClick === void 0) { isTodayClick = false; }\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: cloneDate(event.value),\n target: _this,\n isTodayClick: isTodayClick\n };\n onChange.call(undefined, args);\n }\n };\n return _this;\n }\n Object.defineProperty(HorizontalViewList.prototype, \"element\", {\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HorizontalViewList.prototype, \"weekNumber\", {\n get: function () {\n return Boolean(this.props.showWeekNumbers && this.props.activeView === CalendarViewEnum.month);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HorizontalViewList.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : HorizontalViewList.defaultProps.min;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(HorizontalViewList.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : HorizontalViewList.defaultProps.max;\n },\n enumerable: true,\n configurable: true\n });\n HorizontalViewList.prototype.componentDidUpdate = function () {\n if (this.isActive) {\n this.focusActiveDate();\n }\n };\n HorizontalViewList.prototype.render = function () {\n var _this = this;\n var selectionRange = this.props.allowReverse\n ? this.rotateSelectionRange(this.props.selectionRange)\n : this.props.selectionRange;\n var rootClassNames = classNames('k-calendar-view k-hstack k-align-items-start k-justify-content-center', {\n 'k-calendar-monthview': this.props.activeView === CalendarViewEnum.month,\n 'k-calendar-yearview': this.props.activeView === CalendarViewEnum.year,\n 'k-calendar-decadeview': this.props.activeView === CalendarViewEnum.decade,\n 'k-calendar-centuryview': this.props.activeView === CalendarViewEnum.century\n });\n return (React.createElement(\"div\", { ref: function (el) { _this._element = el; }, className: rootClassNames }, this.props.dates.map(function (date) { return (React.createElement(\"table\", { className: \"k-calendar-table k-calendar-content k-content\", key: date.getTime() },\n React.createElement(View, { bus: _this.props.bus, service: _this.props.service, key: date.getTime(), direction: \"horizontal\", activeView: _this.props.activeView, cellUID: _this.props.cellUID, viewDate: date, min: _this.min, max: _this.max, focusedDate: _this.props.focusedDate, selectionRange: selectionRange, selectedDate: _this.props.value, showWeekNumbers: _this.weekNumber, onChange: _this.handleDateChange, onCellEnter: _this.props.onCellEnter, cell: _this.props.cell, weekCell: _this.props.weekCell }))); })));\n };\n HorizontalViewList.defaultProps = {\n showWeekNumbers: false,\n views: DEFAULT_FETCH_MONTHS_COUNT,\n take: DEFAULT_FETCH_MONTHS_COUNT,\n allowReverse: true,\n min: MIN_DATE,\n max: MAX_DATE\n };\n return HorizontalViewList;\n}(React.Component));\nexport { HorizontalViewList };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { registerForIntl, provideIntlService, registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { classNames, guid, Keys } from '@progress/kendo-react-common';\nimport { cloneDate, isEqualDate, getDate } from '@progress/kendo-date-math';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { Action, CalendarViewEnum, EMPTY_SELECTIONRANGE } from '../models';\nimport { Header } from './Header';\nimport { MIN_DATE, MAX_DATE } from '../../defaults';\nimport { messages, prevView, nextView } from '../../messages';\nimport { BusViewService, NavigationService } from '../services';\nimport { dateInRange, isInRange, viewInRange, getToday } from '../../utils';\nimport { HorizontalViewList } from './HorizontalViewList';\nimport { TodayCommand } from './TodayCommand';\nvar extractDateFromValue = function (min, max, value) {\n if (min === void 0) { min = MultiViewCalendar.defaultProps.min; }\n if (max === void 0) { max = MultiViewCalendar.defaultProps.max; }\n return value instanceof Date && !Array.isArray(value) && isInRange(getDate(value), min, max)\n ? getDate(value)\n : null;\n};\nvar extractMultipleFromValue = function (min, max, value) {\n if (min === void 0) { min = MultiViewCalendar.defaultProps.min; }\n if (max === void 0) { max = MultiViewCalendar.defaultProps.max; }\n return Array.isArray(value)\n ? value.filter(function (date) { return isInRange(date, min, max); }).map(function (date) { return getDate(date); })\n : null;\n};\nvar extractRangeFromValue = function (value) {\n return typeof value === 'object' && !(value instanceof Date) && value !== null && !Array.isArray(value)\n ? value\n : EMPTY_SELECTIONRANGE;\n};\nvar extractFocusedDate = function (single, multiple, range) {\n return single || (multiple && multiple[0]) || (range && range.start);\n};\nvar extractActiveRange = function (range, single) {\n return range.start === null && single === null\n ? 'start'\n : range.end === null\n ? 'end'\n : 'start';\n};\nvar MultiViewCalendar = /** @class */ (function (_super) {\n __extends(MultiViewCalendar, _super);\n function MultiViewCalendar(props) {\n var _this = _super.call(this, props) || this;\n _this.selectedDate = null;\n _this.selectedMultiple = null;\n _this.selectedRange = EMPTY_SELECTIONRANGE;\n _this.cellUID = guid();\n _this.activeRangeEnd = 'start';\n _this.wrapperID = guid();\n _this.isActive = false;\n _this.calculateFocusFromValue = true;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._element) {\n _this._element.focus();\n }\n };\n _this.clampRange = function (value) { return ({ start: value, end: null }); };\n _this.rangeWithFocused = function (range, focusedDate) {\n return {\n start: range.start,\n end: range.end === null && range.start !== null && _this.isActive ? focusedDate : range.end\n };\n };\n _this.generateRange = function (candidate, value) {\n var end = value.end, start = value.start;\n var shouldSwap = value.start !== null && candidate.getTime() <= value.start.getTime();\n if (!_this.props.allowReverse && shouldSwap) {\n return { start: candidate, end: _this.selectedRange.start };\n }\n return _this.activeRange !== 'end'\n ? ({ start: candidate, end: end })\n : ({ start: start || _this.selectedDate, end: candidate });\n };\n _this.canNavigate = function (action) {\n if (!_this.service) {\n return false;\n }\n var candidate = _this.service.move(_this.focusedDate, action);\n return (_this.min <= candidate && candidate <= _this.max)\n || _this.service.isInSameView(candidate, _this.min)\n || _this.service.isInSameView(candidate, _this.max);\n };\n _this.isListInRange = function (list) {\n return _this.min < list[0]\n && _this.max > list[Math.max(0, (_this.props.views || MultiViewCalendar.defaultProps.views) - 1)];\n };\n _this.navigate = function (action) {\n _this.calculateFocusFromValue = false;\n var candidate = _this.move(action);\n _this.setState({ focusedDate: candidate });\n };\n _this.move = function (action) {\n return _this.clampDate(_this.service.move(_this.focusedDate, action));\n };\n _this.clampDate = function (value) {\n return dateInRange(value, _this.min, _this.max);\n };\n _this.shouldAutoCorrect = function (candidate, value) {\n var end = value.end, start = value.start;\n if (_this.activeRange !== 'end') {\n return end !== null && candidate > end;\n }\n else {\n return start !== null && candidate < start;\n }\n };\n _this.handleCellEnter = function (value) {\n if (_this.props.mode === 'range') {\n _this.calculateFocusFromValue = false;\n _this.setState({\n focusedDate: value\n });\n }\n };\n _this.handleMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleClick = function (_) {\n if (!_this._element) {\n return;\n }\n _this._element.focus({ preventScroll: true });\n };\n _this.handleFocus = function (event) {\n _this.isActive = true;\n if (!_this.calendarViewList) {\n return;\n }\n _this.calendarViewList.focusActiveDate();\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus.call(undefined, event);\n }\n };\n _this.handleBlur = function (event) {\n _this.isActive = false;\n if (!_this.calendarViewList) {\n return;\n }\n _this.calendarViewList.blurActiveDate();\n var onBlur = _this.props.onBlur;\n if (onBlur) {\n onBlur.call(undefined, event);\n }\n };\n _this.handleTodayClick = function (event) {\n if (!_this.todayIsInRange) {\n return;\n }\n _this.handleDateChange.call(undefined, event, true);\n };\n _this.handlePrevButtonClick = function () {\n _this.navigate(Action.PrevView);\n };\n _this.handleNextButtonClick = function () {\n _this.navigate(Action.NextView);\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode;\n if (keyCode === Keys.enter) {\n var args = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: _this.focusedDate,\n target: _this\n };\n _this.handleDateChange.call(undefined, args);\n }\n else {\n var candidate = dateInRange(_this.navigation.move(_this.focusedDate, _this.navigation.action(event), _this.state.activeView, _this.service, event), _this.min, _this.max);\n if (isEqualDate(_this.focusedDate, candidate)) {\n return;\n }\n _this.calculateFocusFromValue = false;\n _this.setState({ focusedDate: candidate });\n }\n event.preventDefault();\n };\n _this.handleViewChange = function (_a) {\n var view = _a.view;\n _this.calculateFocusFromValue = false;\n _this.setState({ activeView: view });\n };\n _this.handleDateChange = function (event) {\n var focusedDate = cloneDate(event.value);\n var canNavigateDown = _this.bus.canMoveDown(_this.state.activeView);\n if (_this.props.disabled) {\n return;\n }\n if (canNavigateDown) {\n if (event.isTodayClick) {\n _this.bus.moveToBottom(_this.state.activeView);\n }\n else {\n _this.bus.moveDown(_this.state.activeView, event.syntheticEvent);\n _this.setState({ focusedDate: focusedDate });\n return;\n }\n }\n _this.calculateFocusFromValue = true;\n var value;\n switch (_this.props.mode) {\n case 'single':\n value = cloneDate(event.value);\n break;\n case 'multiple':\n if (Array.isArray(_this.selectedMultiple)) {\n var result = _this.selectedMultiple.slice();\n var index_1 = -1;\n result.forEach(function (date, idx) {\n if (isEqualDate(date, event.value)) {\n index_1 = idx;\n }\n });\n index_1 !== -1\n ? result.splice(index_1, 1)\n : result.push(cloneDate(event.value));\n value = result.slice();\n }\n else {\n if (_this.selectedDate) {\n value = [cloneDate(_this.selectedDate), cloneDate(event.value)];\n }\n else {\n value = [cloneDate(event.value)];\n }\n }\n break;\n case 'range':\n var hasSelection = _this.selectedRange.start !== null\n && _this.selectedRange.end !== null\n && _this.activeRange === 'start';\n value = hasSelection\n ? _this.clampRange(event.value)\n : _this.generateRange(event.value, _this.selectedRange);\n _this.activeRangeEnd = _this.activeRange !== 'end' ? 'end' : 'start';\n break;\n default:\n value = cloneDate(event.value);\n break;\n }\n _this.valueDuringOnChange = value;\n _this.setState({ value: value, focusedDate: focusedDate });\n _this.valueDuringOnChange = value;\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: value,\n target: _this\n };\n onChange.call(undefined, args);\n }\n _this.valueDuringOnChange = undefined;\n };\n var value = props.value !== undefined\n ? props.value\n : props.defaultValue || MultiViewCalendar.defaultProps.defaultValue;\n var selectedDate = extractDateFromValue(_this.min, _this.max, value);\n var selectedMultiple = extractMultipleFromValue(_this.min, _this.max, value);\n var selectedRange = extractRangeFromValue(value);\n var calculatedFocus = extractFocusedDate(selectedDate, selectedMultiple, selectedRange);\n var activeView = viewInRange(CalendarViewEnum[props.defaultActiveView], _this.bottomView, _this.topView);\n var focusedDate = dateInRange(props.focusedDate || calculatedFocus || getToday(), _this.min, _this.max);\n _this.state = {\n value: value,\n activeView: activeView,\n focusedDate: focusedDate\n };\n _this.activeRangeEnd = extractActiveRange(selectedRange, selectedDate);\n _this.bus = new BusViewService(_this.handleViewChange);\n _this.navigation = new NavigationService(_this.bus);\n _this.calculateFocusFromValue = false;\n _this.lastView = activeView;\n _this.lastViewsCount = _this.props.views || HorizontalViewList.defaultProps.views;\n return _this;\n }\n Object.defineProperty(MultiViewCalendar.prototype, \"element\", {\n /**\n * Gets the wrapping element of the MultiViewCalendar component.\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendar.prototype, \"value\", {\n /**\n * Gets the value of the MultiViewCalendar.\n */\n get: function () {\n return this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendar.prototype, \"focusedDate\", {\n /**\n * Gets the current focused date of the MultiViewCalendar.\n */\n get: function () {\n return cloneDate(this._focusedDate);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendar.prototype, \"min\", {\n get: function () {\n return getDate(this.props.min !== undefined\n ? this.props.min\n : MultiViewCalendar.defaultProps.min);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendar.prototype, \"max\", {\n get: function () {\n return getDate(this.props.max !== undefined\n ? this.props.max\n : MultiViewCalendar.defaultProps.max);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendar.prototype, \"bottomView\", {\n get: function () {\n return CalendarViewEnum[this.props.bottomView !== undefined\n ? this.props.bottomView\n : MultiViewCalendar.defaultProps.bottomView];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendar.prototype, \"topView\", {\n get: function () {\n return CalendarViewEnum[this.props.topView !== undefined\n ? this.props.topView\n : MultiViewCalendar.defaultProps.topView];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendar.prototype, \"activeRange\", {\n get: function () {\n return this.props.activeRangeEnd !== undefined\n ? this.props.activeRangeEnd\n : this.activeRangeEnd;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendar.prototype, \"todayIsInRange\", {\n get: function () {\n return isInRange(getToday(), getDate(this.min), getDate(this.max));\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n MultiViewCalendar.prototype.componentDidMount = function () {\n this.calculateFocusFromValue = true;\n };\n /**\n * @hidden\n */\n MultiViewCalendar.prototype.componentDidUpdate = function () {\n if (this.calendarViewList) {\n (this.isActive ? this.calendarViewList.focusActiveDate : this.calendarViewList.blurActiveDate)();\n }\n var stateValue = extractDateFromValue(this.min, this.max, this.value);\n this.calculateFocusFromValue = Boolean(this.selectedDate\n && stateValue\n && (this.selectedDate.getTime() && stateValue.getTime()));\n this.lastView = this.state.activeView;\n this.lastViewsCount = this.props.views || HorizontalViewList.defaultProps.views;\n };\n /**\n * @hidden\n */\n MultiViewCalendar.prototype.render = function () {\n var _this = this;\n if (this.props._ref) {\n this.props._ref(this);\n }\n this.intl = provideIntlService(this);\n this.localization = provideLocalizationService(this);\n this.bus.configure(this.bottomView, this.topView);\n var activeView = viewInRange(this.state.activeView, this.bottomView, this.topView);\n this.service = this.bus.service(activeView, this.intl);\n this.selectedDate = extractDateFromValue(this.min, this.max, this.value);\n this.selectedMultiple = extractMultipleFromValue(this.min, this.max, this.value);\n this.selectedRange = extractRangeFromValue(this.value);\n var calculatedFocus = extractFocusedDate(this.selectedDate, this.selectedMultiple, this.selectedRange);\n this._focusedDate = dateInRange(this.calculateFocusFromValue && calculatedFocus !== null\n ? calculatedFocus\n : this.state.focusedDate, this.min, this.max);\n var wrapperClassName = classNames('k-widget k-calendar k-calendar-range', {\n 'k-state-disabled': this.props.disabled\n }, this.props.className);\n var visualizedRange = this.rangeWithFocused(this.selectedRange, this.focusedDate);\n var wrapperAria = {\n 'aria-disabled': this.props.disabled,\n 'aria-activedescendant': this.cellUID + this.focusedDate.getTime()\n };\n var prevViewTitle = this.localization.toLanguageString(prevView, messages[prevView]);\n var nextViewTittle = this.localization.toLanguageString(nextView, messages[nextView]);\n var isPrevDisabled = !this.canNavigate(Action.PrevView);\n var isNextDisabled = !this.canNavigate(Action.NextView);\n var prevBtnAria = { 'aria-disabled': isPrevDisabled };\n var nextBtnAria = { 'aria-disabled': isNextDisabled };\n var didViewChange = this.lastView !== activeView;\n var isDateInList = this.dates && this.service.isInArray(this.focusedDate, this.dates);\n var didViewsCountChange = this.lastViewsCount !== this.props.views;\n if (!isDateInList || didViewChange || didViewsCountChange) {\n this.dates = this.service.datesList(this.focusedDate, this.props.views || HorizontalViewList.defaultProps.views);\n }\n var activeDate = cloneDate(this.dates && this.dates[0] ? this.dates[0] : getToday());\n return (React.createElement(\"div\", __assign({ ref: function (el) { _this._element = el; }, className: wrapperClassName, id: this.props.id || this.wrapperID, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, role: 'grid', tabIndex: !this.props.disabled ? this.props.tabIndex : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, wrapperAria),\n React.createElement(Header, { key: \".kendo.calendar.header.\" + activeDate.getTime(), activeView: activeView, currentDate: activeDate, min: this.min, max: this.max, rangeLength: this.props.views, bus: this.bus, service: this.service, headerTitle: this.props.headerTitle, commands: (React.createElement(React.Fragment, null,\n React.createElement(Button, __assign({ type: \"button\", className: \"k-nav-prev\", icon: \"arrow-chevron-left\", look: \"flat\", title: prevViewTitle, disabled: isPrevDisabled, onClick: this.handlePrevButtonClick }, prevBtnAria)),\n React.createElement(TodayCommand, { min: this.min, max: this.max, onClick: this.handleTodayClick, disabled: !this.todayIsInRange }),\n React.createElement(Button, __assign({ type: \"button\", className: \"k-nav-next\", icon: \"arrow-chevron-right\", look: \"flat\", title: nextViewTittle, disabled: isNextDisabled, onClick: this.handleNextButtonClick }, nextBtnAria)))) }),\n React.createElement(HorizontalViewList, { ref: function (el) { _this.calendarViewList = el; }, dates: this.dates, activeView: activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, bus: this.bus, service: this.service, selectionRange: visualizedRange, value: this.selectedMultiple || this.selectedDate, cellUID: this.cellUID, views: this.props.views, onChange: this.handleDateChange, showWeekNumbers: this.props.weekNumber, onCellEnter: this.handleCellEnter, cell: this.props.cell, weekCell: this.props.weekCell, headerTitle: this.props.headerTitle })));\n };\n /**\n * @hidden\n */\n MultiViewCalendar.propTypes = {\n activeRangeEnd: PropTypes.oneOf(['start', 'end']),\n allowReverse: PropTypes.bool,\n bottomView: PropTypes.oneOf(['month', 'year', 'decade', 'century']),\n className: PropTypes.string,\n defaultActiveView: PropTypes.oneOf(['month', 'year', 'decade', 'century']),\n defaultValue: PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.arrayOf(PropTypes.instanceOf(Date)),\n PropTypes.shape({ start: PropTypes.instanceOf(Date), end: PropTypes.instanceOf(Date) })\n ]),\n disabled: PropTypes.bool,\n focusedDate: PropTypes.instanceOf(Date),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n mode: PropTypes.oneOf(['single', 'multiple', 'range']),\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n tabIndex: PropTypes.number,\n topView: PropTypes.oneOf(['month', 'year', 'decade', 'century']),\n value: PropTypes.oneOfType([\n PropTypes.instanceOf(Date),\n PropTypes.arrayOf(PropTypes.instanceOf(Date)),\n PropTypes.shape({ start: PropTypes.instanceOf(Date), end: PropTypes.instanceOf(Date) })\n ]),\n views: function (props, propName, componentName) {\n var views = props[propName];\n if (views !== undefined && views < 1) {\n return new Error(\"Invalid prop '\" + propName + \"' supplied to\" +\n (\"'\" + componentName + \"'. The '\" + propName + \"' property cannot be less than 1'\"));\n }\n return null;\n },\n weekNumber: PropTypes.bool\n };\n /**\n * @hidden\n */\n MultiViewCalendar.defaultProps = {\n disabled: false,\n min: MIN_DATE,\n max: MAX_DATE,\n navigation: true,\n defaultActiveView: 'month',\n defaultValue: null,\n topView: 'century',\n tabIndex: 0,\n bottomView: 'month',\n views: 2,\n allowReverse: false\n };\n return MultiViewCalendar;\n}(React.Component));\nexport { MultiViewCalendar };\nregisterForIntl(MultiViewCalendar);\nregisterForLocalization(MultiViewCalendar);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { guid, classNames, Keys } from '@progress/kendo-react-common';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { DateInput } from '../dateinput/DateInput';\nimport { MultiViewCalendar } from '../calendar/components/MultiViewCalendar';\nimport { EMPTY_SELECTIONRANGE } from '../calendar/models';\nimport { MIN_DATE, MAX_DATE } from '../defaults';\nimport { swapStartEnd, start, end, separator, messages } from '../messages';\nimport { Button } from '@progress/kendo-react-buttons';\nvar WRAPPER_STYLES = { display: 'inline-block' };\nvar DateRangePicker = /** @class */ (function (_super) {\n __extends(DateRangePicker, _super);\n function DateRangePicker(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n _this._wrapper = null;\n _this._calendar = null;\n _this._startDateInput = React.createRef();\n _this._endDateInput = React.createRef();\n _this._popupId = guid();\n _this._startInputId = guid();\n _this._endInputId = guid();\n _this.shouldFocusDateInput = false;\n _this.shouldFocusCalendar = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this.startDateInput) {\n _this.startDateInput.focus();\n }\n };\n _this.setCalendarRef = function (calendar) {\n _this._calendar = calendar;\n };\n _this.focusCalendarElement = function () {\n if (_this._calendar && _this._calendar.element) {\n _this._calendar.element.focus({ preventScroll: true });\n }\n };\n _this.calculateValue = function (props, state) {\n var value = props.value !== undefined\n ? props.value\n : state.value;\n return value || EMPTY_SELECTIONRANGE;\n };\n _this.calculateShow = function (nextProps, nextState) {\n return nextProps.show !== undefined\n ? nextProps.show\n : nextState.show;\n };\n _this.handleReverseClick = function (event) {\n var value = {\n start: _this.value.end,\n end: _this.value.start\n };\n var args = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent\n };\n _this.handleChange(value, args);\n };\n _this.handleReverseMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleFocus = function (event) {\n clearTimeout(_this.nextTickId);\n if (!_this.shouldFocusDateInput) {\n _this.setShow(true);\n }\n if (_this.startDateInput && _this.startDateInput.element) {\n _this.startDateInput.element.classList.add('k-state-focused');\n }\n if (_this.endDateInput && _this.endDateInput.element) {\n _this.endDateInput.element.classList.add('k-state-focused');\n }\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus.call(undefined, event);\n }\n };\n _this.handleBlur = function (event) {\n _this.nextTick(function () {\n if (_this.startDateInput && _this.startDateInput.element) {\n _this.startDateInput.element.classList.remove('k-state-focused');\n }\n if (_this.endDateInput && _this.endDateInput.element) {\n _this.endDateInput.element.classList.remove('k-state-focused');\n }\n _this.setShow(false);\n });\n var onBlur = _this.props.onBlur;\n if (onBlur) {\n onBlur.call(undefined, event);\n }\n };\n _this.handleEndChange = function (event) {\n var value = {\n start: _this.value.start,\n end: cloneDate(event.value || undefined)\n };\n _this.handleChange(value, event);\n };\n _this.handleStartChange = function (event) {\n var value = {\n start: cloneDate(event.value || undefined),\n end: _this.value.end\n };\n _this.handleChange(value, event);\n };\n _this.extractRangeFromValue = function (event) {\n if (!Array.isArray(event.value) && !(event.value instanceof Date)) {\n return event.value || EMPTY_SELECTIONRANGE;\n }\n var candidate = Array.isArray(event.value) ? event.value[0] : event.value;\n return {\n start: _this.value.end !== null ? candidate : _this.value.start,\n end: _this.value.start !== null ? candidate : _this.value.end\n };\n };\n _this.handleCalendarChange = function (event) {\n var value = _this.extractRangeFromValue(event);\n _this.handleChange(value, event);\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n if (keyCode === Keys.esc) {\n event.preventDefault();\n _this.shouldFocusDateInput = true;\n _this.setShow(false);\n }\n else if (altKey && keyCode === Keys.down) {\n event.preventDefault();\n _this.shouldFocusCalendar = true;\n _this.setShow(true);\n }\n else if (keyCode === Keys.tab\n && _this.show\n && _this._calendar\n && _this._calendar.element\n && _this.endDateInput\n && _this.endDateInput.element\n && document\n && document.activeElement === _this.endDateInput.element) {\n event.preventDefault();\n _this.focusCalendarElement();\n }\n };\n _this.handleChange = function (value, event) {\n _this.setState({ value: value });\n _this.valueDuringOnChange = value;\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n show: _this.show,\n target: _this\n };\n onChange.call(undefined, args);\n }\n _this.valueDuringOnChange = undefined;\n };\n validatePackage(packageMetadata);\n _this.state = {\n show: _this.props.show || _this.props.defaultShow || DateRangePicker.defaultProps.defaultShow,\n value: _this.props.value || _this.props.defaultValue || DateRangePicker.defaultProps.defaultValue\n };\n _this.nextTick = _this.nextTick.bind(_this);\n _this.setShow = _this.setShow.bind(_this);\n _this.focusCalendarElement = _this.focusCalendarElement.bind(_this);\n _this.focusDateInputElement = _this.focusDateInputElement.bind(_this);\n return _this;\n }\n Object.defineProperty(DateRangePicker.prototype, \"element\", {\n /**\n * Gets the wrapping element of the DateRangePicker.\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateRangePicker.prototype, \"startDateInput\", {\n /**\n * Gets the start DateInput component inside the DatePicker component.\n */\n get: function () {\n return this._startDateInput.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateRangePicker.prototype, \"endDateInput\", {\n /**\n * Gets the end DateInput component inside the DatePicker component.\n */\n get: function () {\n return this._endDateInput.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateRangePicker.prototype, \"calendar\", {\n /**\n * Gets the MultiVieCalendar inside the DateRangePicker.\n */\n get: function () {\n return this._calendar;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateRangePicker.prototype, \"value\", {\n /**\n * Gets the value of the DateRangePicker.\n */\n get: function () {\n var value = this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n return value || EMPTY_SELECTIONRANGE;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateRangePicker.prototype, \"show\", {\n /**\n * Gets the popup state of the DateRangePicker.\n */\n get: function () {\n return this.showDuringOnChange !== undefined\n ? this.showDuringOnChange\n : this.props.show !== undefined\n ? this.props.show\n : this.state.show;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateRangePicker.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : DateRangePicker.defaultProps.min;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateRangePicker.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : DateRangePicker.defaultProps.max;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n DateRangePicker.prototype.componentDidMount = function () {\n if (this.show) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.forceUpdate();\n }\n };\n /**\n * @hidden\n */\n DateRangePicker.prototype.componentDidUpdate = function () {\n if (this.shouldFocusCalendar) {\n this.focusCalendarElement();\n }\n if (this.shouldFocusDateInput) {\n this.focusDateInputElement();\n }\n this.shouldFocusCalendar = false;\n this.shouldFocusDateInput = false;\n };\n /**\n * @hidden\n */\n DateRangePicker.prototype.componentWillUnmount = function () {\n clearTimeout(this.nextTickId);\n };\n /**\n * @hidden\n */\n DateRangePicker.prototype.render = function () {\n var _this = this;\n var value = this.value || EMPTY_SELECTIONRANGE;\n var startDateInputId = (this.props.startDateInputSettings || {}).id || this._startInputId;\n var endDateInputId = (this.props.endDateInputSettings || {}).id || this._endInputId;\n var rootClassName = classNames('k-daterangepicker', {\n 'k-state-disabled': this.props.disabled\n }, this.props.className);\n var localizationService = provideLocalizationService(this);\n var startMessage = localizationService.toLanguageString(start, messages[start]);\n var endMessage = localizationService.toLanguageString(end, messages[end]);\n var separatorMessage = localizationService.toLanguageString(separator, messages[separator]);\n var startDateInputProps = __assign({ label: startMessage, format: this.props.format, min: this.min, max: this.max, id: this._startInputId, disabled: this.props.disabled, valid: this.props.valid, ariaHasPopup: true, ariaExpanded: this.show }, this.props.startDateInputSettings, { value: value.start, onChange: this.handleStartChange });\n var endDateInputProps = __assign({ label: endMessage, format: this.props.format, min: this.min, max: this.max, id: this._endInputId, disabled: this.props.disabled, valid: this.props.valid, ariaHasPopup: true, ariaExpanded: this.show }, this.props.endDateInputSettings, { value: value.end, onChange: this.handleEndChange });\n var popupProps = __assign({ animate: this._wrapper !== null, anchor: this._wrapper, id: this._popupId, anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n }, popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n } }, this.props.popupSettings, { show: this.show });\n var calendarProps = __assign({ min: this.min, max: this.max, allowReverse: this.props.allowReverse, mode: 'range', focusedDate: this.props.focusedDate, disabled: this.props.disabled }, this.props.calendarSettings, { value: value, onChange: this.handleCalendarChange });\n var calendar = this.props.calendar\n ? React.createElement(this.props.calendar, __assign({}, calendarProps))\n : React.createElement(MultiViewCalendar, __assign({}, calendarProps, { ref: this.setCalendarRef }));\n var reverseButton = (React.createElement(Button, __assign({ className: \"k-select\", look: \"flat\", title: provideLocalizationService(this)\n .toLanguageString(swapStartEnd, messages[swapStartEnd]), onMouseDown: this.handleReverseMouseDown, onClick: this.handleReverseClick }, {\n 'aria-controls': startDateInputId + ' ' + endDateInputId,\n 'aria-label': provideLocalizationService(this)\n .toLanguageString(swapStartEnd, messages[swapStartEnd])\n }),\n React.createElement(\"span\", { style: { transform: 'rotate(90deg)' }, className: \"k-icon k-i-arrows-swap\" })));\n return (React.createElement(\"span\", { ref: function (span) {\n _this._element = span;\n }, className: rootClassName, style: this.props.style, id: this.props.id, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, tabIndex: this.props.tabIndex, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown },\n React.createElement(\"span\", { ref: function (span) {\n _this._wrapper = span;\n }, className: \"k-daterangepicker-wrap\", style: WRAPPER_STYLES },\n this.props.startDateInput\n ? React.createElement(this.props.startDateInput, __assign({}, startDateInputProps))\n : React.createElement(DateInput, __assign({}, startDateInputProps, { ref: this._startDateInput })),\n (this.props.allowReverse\n || (this.props.calendarSettings && this.props.calendarSettings.allowReverse))\n && this.props.swapButton\n ? (reverseButton)\n : (separatorMessage),\n this.props.endDateInput\n ? React.createElement(this.props.endDateInput, __assign({}, endDateInputProps))\n : React.createElement(DateInput, __assign({}, endDateInputProps, { ref: this._endDateInput }))),\n this.props.popup\n ? React.createElement(this.props.popup, __assign({}, popupProps), calendar)\n : React.createElement(Popup, __assign({}, popupProps), calendar)));\n };\n DateRangePicker.prototype.focusDateInputElement = function () {\n if (!document || !this.startDateInput || !this.startDateInput.element\n || !this.endDateInput || !this.endDateInput.element) {\n return;\n }\n if ((this.value.start === null || this.value.end !== null)\n && document.activeElement !== this.endDateInput.element) {\n this.startDateInput.element.focus({ preventScroll: true });\n }\n else if (document.activeElement !== this.startDateInput.element) {\n this.endDateInput.element.focus({ preventScroll: true });\n }\n };\n DateRangePicker.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n // Handles multiple focus events happening at the same time.\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n DateRangePicker.prototype.setShow = function (show) {\n if (this.show === show) {\n return;\n }\n this.setState({ show: show });\n };\n /**\n * @hidden\n */\n DateRangePicker.propTypes = {\n allowReverse: PropTypes.bool,\n calendarSettings: PropTypes.any,\n className: PropTypes.string,\n defaultShow: PropTypes.bool,\n defaultValue: PropTypes.shape({ start: PropTypes.instanceOf(Date), end: PropTypes.instanceOf(Date) }),\n disabled: PropTypes.bool,\n endDateInputSettings: PropTypes.shape(DateInput.propTypes),\n focusedDate: PropTypes.instanceOf(Date),\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n popupSettings: PropTypes.any,\n show: PropTypes.bool,\n startDateInputSettings: PropTypes.any,\n style: PropTypes.any,\n swapButton: PropTypes.any,\n tabIndex: PropTypes.number,\n value: PropTypes.shape({ start: PropTypes.instanceOf(Date), end: PropTypes.instanceOf(Date) })\n };\n /**\n * @hidden\n */\n DateRangePicker.defaultProps = {\n allowReverse: false,\n defaultShow: false,\n defaultValue: EMPTY_SELECTIONRANGE,\n disabled: false,\n format: 'd',\n max: MAX_DATE,\n min: MIN_DATE,\n swapButton: false\n };\n return DateRangePicker;\n}(React.Component));\nexport { DateRangePicker };\nregisterForLocalization(DateRangePicker);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, date, time, dateTimePickerCancel as cancel, dateTimePickerSet as set } from '../messages';\nimport { Button, ButtonGroup } from '@progress/kendo-react-buttons';\nimport { Calendar } from '../calendar/components/Calendar';\nimport { TimePart } from '../timepicker/TimePart';\nimport { setTime, getToday, MIN_TIME, MAX_TIME } from '../utils';\nimport { isEqualDate } from '@progress/kendo-date-math';\nimport { Keys, classNames } from '@progress/kendo-react-common';\nimport { MIDNIGHT_DATE } from '../defaults';\nimport { getNow } from '../timepicker/utils';\n/**\n * @hidden\n */\nvar DateTimeSelector = /** @class */ (function (_super) {\n __extends(DateTimeSelector, _super);\n function DateTimeSelector(props) {\n var _this = _super.call(this, props) || this;\n _this._calendarWrap = null;\n _this.focus = function (args) {\n // Async to avoid stealing the focus from the DateInput on close\n Promise.resolve().then(function () {\n if (_this.state.tab === 'time' && _this._timePart) {\n _this._timePart.focus(args);\n }\n var calendarElement = _this.calendarElement();\n if (_this.state.tab === 'date' && calendarElement) {\n calendarElement.focus(args);\n }\n });\n };\n _this.calendarElement = function () {\n return (_this._calendar && _this._calendar.element) ||\n (_this._calendarWrap && _this._calendarWrap.querySelector('.k-widget.k-calendar'));\n };\n _this.move = function (direction) {\n if (direction === 'right' && _this.state.tab === 'time') {\n return;\n }\n if (direction === 'left' && _this.state.tab === 'date') {\n return;\n }\n var nextPart = direction === 'left' ? 'date' : 'time';\n _this.shouldFocusPart = true;\n _this.setState({ tab: nextPart });\n };\n _this.handleReject = function (event) {\n _this.setState({ dateValue: _this.props.value, timeValue: _this.props.value || MIDNIGHT_DATE });\n var value = _this.mergeDate(_this.props.value, _this.props.value || MIDNIGHT_DATE);\n if (_this.props.onReject) {\n var args = {\n nativeEvent: event.nativeEvent,\n syntheticEvent: event,\n target: _this,\n value: value\n };\n _this.props.onReject.call(undefined, args);\n }\n };\n _this.handleAccept = function (event, timeOverride) {\n if (!_this.state.dateValue || !_this.state.timeValue || !_this.hasDateValue) {\n return;\n }\n var value = _this.mergeDate(_this.state.dateValue, timeOverride || _this.state.timeValue);\n _this.props.onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: value,\n target: _this\n });\n };\n _this.handleNowClick = function (event) {\n _this.setState({ timeValue: getNow() });\n _this.handleAccept(event, getNow());\n };\n _this.handleCalendarValueChange = function (event) {\n event.syntheticEvent.stopPropagation();\n _this.setState({ dateValue: event.value, tab: 'time' });\n _this.shouldFocusPart = true;\n };\n _this.handleTimeListContainerChange = function (candidate) {\n _this.setState({ timeValue: candidate });\n };\n _this.handleDateClick = function (event) {\n event.stopPropagation();\n _this.move('left');\n };\n _this.handleTimeClick = function (event) {\n event.stopPropagation();\n _this.move('right');\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n switch (keyCode) {\n case Keys.enter:\n if (!_this.hasActiveButton() && _this.hasDateValue) {\n _this.handleAccept(event);\n }\n return;\n case Keys.left:\n if (!altKey) {\n return;\n }\n _this.move('left');\n return;\n case Keys.right:\n if (!altKey) {\n return;\n }\n _this.move('right');\n return;\n default:\n return;\n }\n };\n _this.handleTimePartMount = function (value) {\n _this.setState({ timeValue: value });\n };\n _this.state = {\n tab: 'date',\n dateValue: _this.props.value,\n timeValue: _this.props.value || MIDNIGHT_DATE\n };\n return _this;\n }\n Object.defineProperty(DateTimeSelector.prototype, \"calendar\", {\n get: function () {\n return this._calendar;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimeSelector.prototype, \"timePart\", {\n get: function () {\n return this._timePart;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimeSelector.prototype, \"hasDateValue\", {\n get: function () {\n return this.state.dateValue !== null;\n },\n enumerable: true,\n configurable: true\n });\n DateTimeSelector.prototype.componentDidUpdate = function () {\n if (this.shouldFocusPart) {\n this.focus({ preventScroll: true });\n }\n this.shouldFocusPart = false;\n };\n DateTimeSelector.prototype.render = function () {\n var _this = this;\n var _a = this.props, disabled = _a.disabled, cancelButton = _a.cancelButton, min = _a.min, max = _a.max, weekNumber = _a.weekNumber, focusedDate = _a.focusedDate, format = _a.format;\n var rootClassName = classNames({\n 'k-date-tab': this.state.tab === 'date',\n 'k-time-tab': this.state.tab === 'time',\n 'k-state-disabled': disabled\n }, 'k-datetime-wrap');\n var localizationService = provideLocalizationService(this);\n var dateMessage = localizationService.toLanguageString(date, messages[date]);\n var timeMessage = localizationService.toLanguageString(time, messages[time]);\n var cancelMessage = localizationService.toLanguageString(cancel, messages[cancel]);\n var setMessage = localizationService.toLanguageString(set, messages[set]);\n var calendarProps = {\n min: min, max: max, weekNumber: weekNumber, focusedDate: focusedDate,\n disabled: disabled || this.state.tab !== 'date',\n value: this.state.dateValue,\n onChange: this.handleCalendarValueChange,\n navigation: false\n };\n return (React.createElement(\"div\", { onKeyDown: this.handleKeyDown, className: rootClassName, tabIndex: -1 },\n React.createElement(\"div\", { className: \"k-datetime-buttongroup\" },\n React.createElement(ButtonGroup, { width: \"100%\" },\n React.createElement(Button, { type: \"button\", selected: this.state.tab === 'date', togglable: true, onClick: this.handleDateClick }, dateMessage),\n React.createElement(Button, { type: \"button\", selected: this.state.tab === 'time', togglable: true, onClick: this.handleTimeClick }, timeMessage))),\n React.createElement(\"div\", { className: \"k-datetime-selector\" },\n React.createElement(\"div\", { className: \"k-datetime-calendar-wrap\", ref: function (e) { return _this._calendarWrap = e; } }, this.props.calendar ?\n React.createElement(this.props.calendar, __assign({}, calendarProps)) :\n React.createElement(Calendar, __assign({ ref: function (calendar) { _this._calendar = calendar; } }, calendarProps))),\n React.createElement(\"div\", { className: \"k-datetime-time-wrap\" }, React.createElement(TimePart, { key: 1, onNowClick: this.handleNowClick, disabled: disabled || this.state.tab !== 'time', ref: function (timePart) { _this._timePart = timePart; }, min: this.minTime || MIN_TIME, max: this.maxTime || MAX_TIME, steps: this.props.steps, value: this.state.timeValue, format: format, onChange: this.handleTimeListContainerChange, onMount: this.handleTimePartMount }))),\n React.createElement(\"div\", { className: \"k-datetime-footer k-actions k-hstack k-justify-content-stretch\" },\n cancelButton && React.createElement(Button, __assign({ type: \"button\", ref: function (btn) { _this._cancelButton = btn; }, className: \"k-time-cancel\", onClick: this.handleReject, title: cancelMessage }, { 'aria-label': cancelMessage }), cancelMessage),\n React.createElement(Button, __assign({ type: \"button\", ref: function (btn) { _this._acceptButton = btn; }, className: \"k-time-accept\", disabled: !this.hasDateValue, onClick: this.handleAccept, title: setMessage }, { 'aria-label': setMessage }), setMessage))));\n };\n Object.defineProperty(DateTimeSelector.prototype, \"minTime\", {\n get: function () {\n return this.props.minTime !== undefined\n ? this.props.minTime\n : this.normalizeRange(this.props.min, this.state.dateValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimeSelector.prototype, \"maxTime\", {\n get: function () {\n return this.props.maxTime !== undefined\n ? this.props.maxTime\n : this.normalizeRange(this.props.max, this.state.dateValue);\n },\n enumerable: true,\n configurable: true\n });\n DateTimeSelector.prototype.normalizeRange = function (candidate, value) {\n return isEqualDate(candidate, value || getToday())\n ? candidate\n : null;\n };\n DateTimeSelector.prototype.hasActiveButton = function () {\n if (!this._acceptButton) {\n return false;\n }\n return (this._acceptButton && document.activeElement === this._acceptButton.element)\n || (this._cancelButton && document.activeElement === this._cancelButton.element);\n };\n DateTimeSelector.prototype.mergeTime = function (current, candidate) {\n return current && candidate ? setTime(candidate, current) : candidate;\n };\n DateTimeSelector.prototype.mergeDate = function (candidate, value) {\n return candidate ? setTime(candidate || getToday(), value) : value;\n };\n return DateTimeSelector;\n}(React.Component));\nexport { DateTimeSelector };\nregisterForLocalization(DateTimeSelector);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { classNames, guid, Keys, AsyncFocusBlur } from '@progress/kendo-react-common';\nimport { DateInput } from '../dateinput/DateInput';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { MIN_DATE, MAX_DATE, isInDateRange, MAX_TIME } from '../utils';\nimport { messages, toggleDateTimeSelector } from '../messages';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { DateTimeSelector } from './DateTimeSelector';\nimport { isInTimeRange } from '../timepicker/utils';\nimport { MIN_TIME } from '../defaults';\nimport { PickerFloatingLabel } from '../hooks/usePickerFloatingLabel';\nvar DateTimePicker = /** @class */ (function (_super) {\n __extends(DateTimePicker, _super);\n function DateTimePicker(props) {\n var _this = _super.call(this, props) || this;\n _this._popupId = guid();\n _this._element = null;\n _this._wrapper = null;\n _this._dateInput = React.createRef();\n _this._dateTimeSelector = null;\n _this.shouldFocusDateInput = false;\n _this.prevShow = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n var dateInputElement = _this.dateInputElement();\n if (dateInputElement) {\n dateInputElement.focus();\n }\n };\n _this.handleReject = function () {\n _this.shouldFocusDateInput = true;\n _this.setShow(false);\n };\n _this.handleValueChange = function (event) {\n _this.setState({\n value: cloneDate(event.value || undefined),\n show: false\n });\n _this.valueDuringOnChange = event.value;\n _this.showDuringOnChange = false;\n _this.shouldFocusDateInput = true;\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n show: _this.show,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n _this.showDuringOnChange = undefined;\n };\n _this.handleFocus = function () {\n _this.setState({ focused: true });\n };\n _this.handleBlur = function () {\n _this.setState({ focused: false });\n _this.setShow(false);\n };\n _this.handleDateIconClick = function () {\n if (_this.props.disabled) {\n return;\n }\n _this.shouldFocusDateInput = true;\n _this.setShow(!_this.show);\n };\n _this.handleIconMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleKeyDown = function (event) {\n var altKey = event.altKey, keyCode = event.keyCode;\n if (keyCode === Keys.esc) {\n _this.shouldFocusDateInput = true;\n _this.setShow(false);\n return;\n }\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n _this.shouldFocusDateInput = keyCode === Keys.up;\n _this.setShow(keyCode === Keys.down);\n }\n };\n _this.dateInputElement = function () {\n return (_this.dateInput && _this.dateInput.element) ||\n (_this._wrapper && _this._wrapper.querySelector('.k-dateinput-wrap > input.k-input'));\n };\n validatePackage(packageMetadata);\n _this.state = {\n value: _this.props.defaultValue || DateTimePicker.defaultProps.defaultValue,\n show: _this.props.defaultShow || DateTimePicker.defaultProps.defaultShow,\n focused: false\n };\n return _this;\n }\n Object.defineProperty(DateTimePicker.prototype, \"element\", {\n /**\n * Gets the wrapping element of the DateTimePicker.\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimePicker.prototype, \"dateInput\", {\n /**\n * Gets the DateInput component inside the DateTimePicker component.\n */\n get: function () {\n return this._dateInput.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimePicker.prototype, \"value\", {\n /**\n * Gets the value of the DateTimePicker.\n */\n get: function () {\n var value = this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n return (value !== null) ? cloneDate(value) : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimePicker.prototype, \"show\", {\n /**\n * Gets the popup state of the DateTimePicker.\n */\n get: function () {\n return this.showDuringOnChange !== undefined\n ? this.showDuringOnChange\n : this.props.show !== undefined\n ? this.props.show\n : this.state.show;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimePicker.prototype, \"name\", {\n /**\n * Gets the `name` property of the DateTimePicker.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimePicker.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : DateTimePicker.defaultProps.min;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimePicker.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : DateTimePicker.defaultProps.max;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimePicker.prototype, \"validity\", {\n /**\n * Represents the validity state into which the DateTimePicker is set.\n */\n get: function () {\n var inRange = isInDateRange(this.value, this.min, this.max)\n && isInTimeRange(this.value, this.props.minTime || MIN_TIME, this.props.maxTime || MAX_TIME);\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== null) && inRange;\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: (this.value && this.max.getTime() < this.value.getTime()) || false,\n rangeUnderflow: (this.value && this.value.getTime() < this.min.getTime()) || false,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimePicker.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : DateTimePicker.defaultProps.validityStyles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimePicker.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : DateTimePicker.defaultProps.required;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DateTimePicker.prototype, \"dateInputComp\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.dateInput || DateTimePicker.defaultProps.dateInput;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n DateTimePicker.prototype.componentDidMount = function () {\n if (this.show) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.forceUpdate();\n }\n };\n /**\n * @hidden\n */\n DateTimePicker.prototype.componentDidUpdate = function () {\n var dateInputElement = this.dateInputElement();\n if (this._dateTimeSelector && this.show && !this.prevShow) {\n this._dateTimeSelector.focus({ preventScroll: true });\n }\n if (dateInputElement\n && !this.show\n && this.shouldFocusDateInput) {\n dateInputElement.focus({ preventScroll: true });\n }\n this.prevShow = this.show;\n this.shouldFocusDateInput = false;\n };\n /**\n * @hidden\n */\n DateTimePicker.prototype.componentWillUnmount = function () {\n clearTimeout(this.nextTickId);\n };\n /**\n * @hidden\n */\n DateTimePicker.prototype.render = function () {\n var _this = this;\n var _a = this.props, disabled = _a.disabled, tabIndex = _a.tabIndex, title = _a.title, id = _a.id, format = _a.format, formatPlaceholder = _a.formatPlaceholder, min = _a.min, max = _a.max, weekNumber = _a.weekNumber, focusedDate = _a.focusedDate, className = _a.className, width = _a.width, name = _a.name, validationMessage = _a.validationMessage, required = _a.required, validityStyles = _a.validityStyles, cancelButton = _a.cancelButton, minTime = _a.minTime, maxTime = _a.maxTime, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy, _b = _a.popup, PopupComponent = _b === void 0 ? Popup : _b, calendar = _a.calendar;\n var isValid = !this.validityStyles || this.validity.valid;\n var rootClassName = classNames('k-widget k-datetimepicker', {\n 'k-state-invalid': !isValid\n }, className);\n var wrapperClassNames = classNames('k-picker-wrap', {\n 'k-state-disabled': disabled,\n 'k-state-focused': this.state.focused\n });\n var dataInputProps = {\n id: id, ariaLabelledBy: ariaLabelledBy, ariaDescribedBy: ariaDescribedBy, format: format, formatPlaceholder: formatPlaceholder, disabled: disabled,\n title: title, validityStyles: validityStyles, validationMessage: validationMessage, required: required, min: min, max: max, minTime: minTime, maxTime: maxTime, name: name,\n tabIndex: !this.show ? tabIndex : -1,\n valid: this.validity.valid,\n value: this.value,\n onChange: this.handleValueChange,\n steps: this.props.steps,\n label: undefined,\n placeholder: !this.state.focused ? this.props.placeholder : null,\n ariaHasPopup: true,\n ariaExpanded: this.show\n };\n var dateTimePicker = (React.createElement(AsyncFocusBlur, { onFocus: this.handleFocus, onBlur: this.handleBlur, onSyncFocus: this.props.onFocus, onSyncBlur: this.props.onBlur }, function (_a) {\n var onFocus = _a.onFocus, onBlur = _a.onBlur;\n return (React.createElement(\"div\", { ref: function (div) {\n _this._element = div;\n }, className: rootClassName, onKeyDown: _this.handleKeyDown, style: { width: width }, onFocus: onFocus, onBlur: onBlur },\n React.createElement(\"div\", { ref: function (span) { _this._wrapper = span; }, className: wrapperClassNames },\n React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput }, dataInputProps)),\n React.createElement(\"span\", __assign({ role: \"button\", onMouseDown: _this.handleIconMouseDown, onClick: _this.handleDateIconClick, title: provideLocalizationService(_this)\n .toLanguageString(toggleDateTimeSelector, messages[toggleDateTimeSelector]), className: \"k-select\" }, {\n 'aria-controls': _this._popupId,\n 'aria-label': provideLocalizationService(_this)\n .toLanguageString(toggleDateTimeSelector, messages[toggleDateTimeSelector])\n }),\n React.createElement(\"span\", { className: \"k-link k-link-date\" },\n React.createElement(\"span\", { className: \"k-icon k-i-calendar\" })))),\n React.createElement(PopupComponent, { show: _this.show, animate: _this._wrapper !== null, anchor: _this._wrapper, className: \"k-datetime-container k-group k-reset\", id: _this._popupId, anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n }, popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n } },\n React.createElement(DateTimeSelector, { ref: function (dateTimeSelector) { _this._dateTimeSelector = dateTimeSelector; }, cancelButton: cancelButton, steps: _this.props.steps, value: _this.value, onChange: _this.handleValueChange, onReject: _this.handleReject, disabled: disabled, weekNumber: weekNumber, min: _this.min, max: _this.max, minTime: minTime, maxTime: maxTime, focusedDate: focusedDate, format: format, calendar: calendar }))));\n }));\n return this.props.label\n ? (React.createElement(PickerFloatingLabel, { dateInput: this._dateInput, label: this.props.label, editorId: id, editorValid: isValid, editorDisabled: this.props.disabled, children: dateTimePicker, style: { width: this.props.width } }))\n : dateTimePicker;\n };\n DateTimePicker.prototype.setShow = function (show) {\n if (this.show === show) {\n return;\n }\n this.setState({ show: show });\n };\n DateTimePicker.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n // Handles multiple focus events happening at the same time.\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n /**\n * @hidden\n */\n DateTimePicker.propTypes = {\n className: PropTypes.string,\n defaultShow: PropTypes.bool,\n defaultValue: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n focusedDate: PropTypes.instanceOf(Date),\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n formatPlaceholder: PropTypes.oneOfType([\n PropTypes.oneOf(['wide', 'narrow', 'short', 'formatPattern']),\n PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string,\n hour: PropTypes.string,\n minute: PropTypes.string,\n second: PropTypes.string\n })\n ]),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n min: PropTypes.instanceOf(Date),\n max: PropTypes.instanceOf(Date),\n name: PropTypes.string,\n popupSettings: PropTypes.shape({\n animate: PropTypes.bool,\n appendTo: PropTypes.any,\n popupClass: PropTypes.string\n }),\n show: PropTypes.bool,\n tabIndex: PropTypes.number,\n title: PropTypes.string,\n value: PropTypes.instanceOf(Date),\n weekNumber: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool,\n cancelButton: PropTypes.bool\n };\n /**\n * @hidden\n */\n DateTimePicker.defaultProps = {\n defaultShow: false,\n defaultValue: null,\n disabled: false,\n format: 'g',\n max: MAX_DATE,\n min: MIN_DATE,\n popupSettings: {},\n tabIndex: 0,\n weekNumber: false,\n required: false,\n validityStyles: true,\n cancelButton: true,\n dateInput: DateInput\n };\n return DateTimePicker;\n}(React.Component));\nexport { DateTimePicker };\nregisterForLocalization(DateTimePicker);\n","var clearSlide = function (element) {\n element.style.transitionDuration = '';\n element.classList.remove('k-slide-down-appear', 'k-slide-down-appear-active', 'k-slide-down-exit', 'k-slide-down-exit-active', 'k-slide-up-appear', 'k-slide-up-appear-active', 'k-slide-up-exit', 'k-slide-up-exit-active');\n};\nvar firefox = typeof window !== 'undefined' &&\n /Firefox/.test(window.navigator.userAgent);\n/**\n * @hidden\n */\nexport var slide = function (element, direction, duration, type, callback) {\n if (duration === 0) {\n return callback();\n }\n var slideClass = 'k-slide-' + direction + '-' + type;\n var slideActiveClass = slideClass + '-active';\n var transitionend = function () {\n // if event is attached using react,\n // the animation does not work well in firefox,\n // when the show/hide button is toggled quickly.\n element.removeEventListener('transitionend', transitionend);\n clearSlide(element);\n callback();\n };\n element.addEventListener('transitionend', transitionend);\n var ownerDocument = element.ownerDocument;\n if (!ownerDocument) {\n return;\n }\n var deafultView = ownerDocument.defaultView;\n if (!deafultView) {\n return;\n }\n var animate = function () {\n clearSlide(element);\n element.classList.add(slideClass);\n deafultView.requestAnimationFrame(function () {\n element.style.transitionDuration = duration + 'ms';\n element.classList.add(slideActiveClass);\n });\n };\n if (firefox) {\n deafultView.requestAnimationFrame(animate);\n }\n else {\n animate();\n }\n};\n","import { parents, siblingContainer } from '@progress/kendo-popup-common';\nimport { canUseDOM, hasRelativeStackingContext } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var eitherRect = function (rect, offset) {\n if (!rect) {\n return { height: 0, left: offset.left, top: offset.top, width: 0 };\n }\n return rect;\n};\n/**\n * @hidden\n */\nexport var replaceOffset = function (rect, offset) {\n if (!offset) {\n return rect;\n }\n var result = {\n height: rect.height,\n left: offset.left,\n top: offset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\nexport var removeStackingOffset = function (rect, stackingOffset) {\n if (!stackingOffset) {\n return rect;\n }\n var result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\nexport var isDifferentOffset = function (oldOffset, newOffset) {\n var oldLeft = oldOffset.left, oldTop = oldOffset.top;\n var newLeft = newOffset.left, newTop = newOffset.top;\n return Math.abs(oldLeft - newLeft) >= 1 || Math.abs(oldTop - newTop) >= 1;\n};\n/**\n * @hidden\n */\nexport var hasBoundingRect = function (elem) { return !!elem.getBoundingClientRect; };\n/**\n * @hidden\n */\nexport var OVERFLOW_REGEXP = /auto|scroll/;\n/**\n * @hidden\n */\nvar overflowStyle = function (element) {\n var styles = window.getComputedStyle(element);\n return \"\" + styles.overflow + styles.overflowX + styles.overflowY;\n};\n/**\n * @hidden\n */\nexport var scrollableParents = function (element) {\n var parentElements = [];\n if (!canUseDOM) {\n return parentElements;\n }\n var parent = element.parentElement;\n while (parent) {\n if (OVERFLOW_REGEXP.test(overflowStyle(parent))) {\n parentElements.push(parent);\n }\n parent = parent.parentElement;\n }\n parentElements.push(window);\n return parentElements;\n};\n/**\n * @hidden\n */\nexport var FRAME_DURATION = 1000 / 60; // 1000ms divided by 60fps\n/**\n * @hidden\n */\nexport var HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext();\n/**\n * @hidden\n */\nexport var zIndex = function (anchor, container) {\n if (!anchor || !canUseDOM) {\n return null;\n }\n var sibling = siblingContainer(anchor, container);\n if (!sibling) {\n return null;\n }\n var result = [anchor].concat(parents(anchor, sibling)).reduce(function (index, p) {\n var zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;\n var current = parseInt(zIndexStyle, 10);\n return current > index ? current : index;\n }, 0);\n return result ? (result + 1) : null;\n};\n/**\n * @hidden\n */\nexport var CollisionType = {\n fit: 'fit',\n flip: 'flip'\n};\n/**\n * @hidden\n */\nexport var AlignPoint = {\n left: 'left',\n center: 'center',\n right: 'right',\n bottom: 'bottom',\n top: 'top'\n};\n/**\n * @hidden\n */\nexport var throttle = function (func, wait, options) {\n if (options === void 0) { options = {}; }\n var timeout, context, args, result;\n var previous = 0;\n options = options || {};\n var later = function () {\n previous = options.leading === false ? 0 : new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n };\n var throttled = function () {\n var now = new Date().getTime();\n if (!previous && options.leading === false) {\n previous = now;\n }\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n }\n else if (!timeout && options.trailing !== false) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n return throttled;\n};\n","import { eitherRect, removeStackingOffset } from '../util';\n/**\n * @hidden\n */\nvar AlignService = /** @class */ (function () {\n function AlignService(_dom) {\n this._dom = _dom;\n }\n AlignService.prototype.alignElement = function (settings) {\n var anchor = settings.anchor, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, offset = settings.offset;\n var fixedMode = !this._dom.hasOffsetParent(element);\n var anchorRect = fixedMode ?\n this.absoluteRect(anchor, element, offset) :\n this.relativeRect(anchor, element, offset);\n return this._dom.align({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n elementAlign: elementAlign,\n elementRect: this._dom.offset(element)\n });\n };\n AlignService.prototype.absoluteRect = function (anchor, element, offset) {\n var dom = this._dom;\n var rect = eitherRect(dom.offset(anchor), offset);\n var stackingOffset = dom.stackingElementOffset(element);\n var removedOffset = removeStackingOffset(rect, stackingOffset);\n var stackingScroll = dom.stackingElementScroll(element);\n var withScroll = dom.addScroll(removedOffset, stackingScroll);\n var scrollPosition = this.elementScrollPosition(anchor, element);\n var result = dom.removeScroll(withScroll, scrollPosition);\n result.left += window.scrollX || window.pageXOffset;\n result.top += window.scrollY || window.pageYOffset;\n return result;\n };\n AlignService.prototype.elementScrollPosition = function (anchor, element) {\n return anchor ? { x: 0, y: 0 } : this._dom.scrollPosition(element);\n };\n AlignService.prototype.relativeRect = function (anchor, element, offset) {\n return eitherRect(this._dom.position(anchor, element), offset);\n };\n return AlignService;\n}());\nexport { AlignService };\n","import { align, applyLocationOffset, boundingOffset, getWindowViewPort, isBodyOffset, offset, positionWithScroll, restrictToView, addScroll, removeScroll, scrollPosition, siblingContainer } from '@progress/kendo-popup-common';\nimport { HAS_RELATIVE_STACKING_CONTEXT, scrollableParents, zIndex } from '../util';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n }\n DOMService.prototype.addOffset = function (current, addition) {\n return {\n left: current.left + addition.left,\n top: current.top + addition.top\n };\n };\n DOMService.prototype.align = function (settings) {\n return align(settings);\n };\n DOMService.prototype.boundingOffset = function (el) {\n return boundingOffset(el);\n };\n DOMService.prototype.getWindow = function () {\n return canUseDOM ? window : null;\n };\n DOMService.prototype.isBodyOffset = function (el) {\n return isBodyOffset(el);\n };\n DOMService.prototype.hasOffsetParent = function (el) {\n if (!el) {\n return false;\n }\n var offsetParentEl = el.offsetParent;\n return offsetParentEl &&\n !(offsetParentEl.nodeName === 'BODY' &&\n window.getComputedStyle(offsetParentEl).position === 'static');\n };\n DOMService.prototype.offset = function (el) {\n if (!el) {\n return null;\n }\n return offset(el);\n };\n DOMService.prototype.staticOffset = function (element) {\n if (!element) {\n return null;\n }\n var _a = element.style, left = _a.left, top = _a.top;\n element.style.left = '0px';\n element.style.top = '0px';\n var currentOffset = offset(element);\n element.style.left = left;\n element.style.top = top;\n return currentOffset;\n };\n DOMService.prototype.position = function (element, popup) {\n if (!element || !popup) {\n return null;\n }\n var parentSibling = siblingContainer(element, popup);\n return positionWithScroll(element, parentSibling);\n };\n DOMService.prototype.relativeOffset = function (el, currentLocation) {\n return applyLocationOffset(this.offset(el), currentLocation, this.isBodyOffset(el));\n };\n DOMService.prototype.addScroll = function (rect, scroll) {\n return addScroll(rect, scroll);\n };\n DOMService.prototype.removeScroll = function (rect, scroll) {\n return removeScroll(rect, scroll);\n };\n DOMService.prototype.restrictToView = function (settings) {\n return restrictToView(settings);\n };\n DOMService.prototype.scrollPosition = function (el) {\n return scrollPosition(el);\n };\n DOMService.prototype.scrollableParents = function (el) {\n return scrollableParents(el);\n };\n DOMService.prototype.stackingElementOffset = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return offset(relativeContextElement);\n };\n DOMService.prototype.stackingElementScroll = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return { x: 0, y: 0 };\n }\n return {\n x: relativeContextElement.scrollLeft,\n y: relativeContextElement.scrollTop\n };\n };\n DOMService.prototype.stackingElementViewPort = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return {\n height: relativeContextElement.scrollHeight,\n width: relativeContextElement.scrollWidth\n };\n };\n DOMService.prototype.getRelativeContextElement = function (el) {\n if (!el || !HAS_RELATIVE_STACKING_CONTEXT) {\n return null;\n }\n var parent = el.parentElement;\n while (parent) {\n if (window.getComputedStyle(parent).transform !== 'none') {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n };\n DOMService.prototype.useRelativePosition = function (el) {\n return !!this.getRelativeContextElement(el);\n };\n DOMService.prototype.windowViewPort = function (el) {\n return getWindowViewPort(el);\n };\n DOMService.prototype.zIndex = function (anchor, container) {\n return zIndex(anchor, container);\n };\n DOMService.prototype.zoomLevel = function () {\n if (!canUseDOM) {\n return 1;\n }\n return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2));\n };\n DOMService.prototype.isZoomed = function () {\n return this.zoomLevel() > 1;\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { eitherRect, replaceOffset } from '../util';\n/**\n * @hidden\n */\nvar PositionService = /** @class */ (function () {\n function PositionService(_dom) {\n this._dom = _dom;\n }\n PositionService.prototype.positionElement = function (settings) {\n var anchor = settings.anchor, currentLocation = settings.currentLocation, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, collisions = settings.collisions;\n var dom = this._dom;\n var viewPort = settings.viewPort || dom.stackingElementViewPort(element) || dom.windowViewPort(element);\n var anchorRect = eitherRect(dom.offset(anchor), currentLocation);\n var initialElementRect = replaceOffset(dom.staticOffset(element), currentLocation);\n var elementRect = this.elementRect(element, initialElementRect);\n var result = dom.restrictToView({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n collisions: collisions,\n elementAlign: elementAlign,\n elementRect: elementRect,\n viewPort: viewPort\n });\n return {\n flipped: result.flipped,\n offset: dom.addOffset(initialElementRect, result.offset)\n };\n };\n PositionService.prototype.elementRect = function (element, rect) {\n return this._dom.removeScroll(rect, this._dom.scrollPosition(element));\n };\n return PositionService;\n}());\nexport { PositionService };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-popup',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584105,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as PropTypes from 'prop-types';\nimport { slide } from './animation';\nimport { classNames, canUseDOM } from '@progress/kendo-react-common';\nimport { CollisionType, AlignPoint, throttle, FRAME_DURATION } from './util';\nimport { AlignService } from './services/alignService';\nimport { DOMService } from './services/domService';\nimport { PositionService } from './services/positionService';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nfunction isEquivalent(a, b) {\n if (a === b) {\n return true;\n }\n if (!!a !== !!b) {\n return false;\n }\n var aProps = Object.getOwnPropertyNames(a);\n var bProps = Object.getOwnPropertyNames(b);\n if (aProps.length !== bProps.length) {\n return false;\n }\n for (var i = 0; i < aProps.length; i++) {\n var propName = aProps[i];\n if (a[propName] !== b[propName]) {\n return false;\n }\n }\n return true;\n}\nvar DEFAULT_OFFSET = {\n left: -1000,\n top: 0\n};\nvar Status;\n(function (Status) {\n Status[\"hiding\"] = \"hiding\";\n Status[\"hidden\"] = \"hidden\";\n Status[\"showing\"] = \"showing\";\n Status[\"shown\"] = \"shown\";\n Status[\"reposition\"] = \"reposition\";\n})(Status || (Status = {}));\nvar ANIMATION_CONTAINER = 'k-animation-container';\nvar ANIMATION_CONTAINER_SHOWN = 'k-animation-container-shown';\nvar ANIMATION_CONTAINER_RELATIVE = 'k-animation-container-relative';\nvar ANIMATION_CONTAINER_CHILD = 'k-child-animation-container';\nvar K_POPUP = 'k-popup';\n/**\n * @hidden\n */\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = { current: Status.hidden, previous: Status.hidden, props: {} };\n _this._popup = null;\n _this.show = function (popup) {\n _this.setPosition(popup);\n _this.animate(popup.firstChild, 'enter', _this.onOpened);\n _this.setState({ current: Status.shown, previous: _this.state.current });\n };\n _this.setPosition = function (popup) {\n var _a = _this.props, anchorAlign = _a.anchorAlign, popupAlign = _a.popupAlign, collision = _a.collision, offset = _a.offset, anchor = _a.anchor;\n var popupContent = popup.firstElementChild;\n var _b = getComputedStyle(popupContent), contentWidth = _b.width, contentHeight = _b.height;\n // The absolute position prevents appearing of a scrollbar which could move the anchor element and breaks the positioning.\n popupContent.style.position = 'absolute';\n // Width and height are required since absolute position breaks the element sizing.\n popupContent.style.width = contentWidth;\n popupContent.style.height = contentHeight;\n var alignedOffset = _this._alignService.alignElement({\n anchor: anchor,\n element: popupContent,\n elementAlign: popupAlign,\n anchorAlign: anchorAlign,\n offset: offset\n });\n var position = _this._positionService.positionElement({\n anchor: anchor,\n anchorAlign: anchorAlign,\n collisions: collision,\n element: popupContent,\n currentLocation: alignedOffset,\n elementAlign: popupAlign\n });\n if (position.offset) {\n popup.style.top = position.offset.top + 'px';\n popup.style.left = position.offset.left + 'px';\n popupContent.style.position = '';\n popupContent.style.width = '';\n popupContent.style.height = '';\n }\n _this._flipped = position.flipped;\n };\n _this.onOpened = function () {\n var element = _this._popup;\n if (!element) {\n return;\n }\n if (_this.props.show) {\n element.classList.add(ANIMATION_CONTAINER_SHOWN);\n }\n _this.attachRepositionHandlers(element);\n if (_this.props.onOpen) {\n _this.props.onOpen.call(undefined, { target: _this });\n }\n };\n _this.animate = function (element, type, callback) {\n slide(element, _this._flipped ? 'up' : 'down', _this.animationDuration[type], type, callback);\n };\n _this.onClosing = function (popup) {\n if (!_this.props.show) {\n popup.classList.remove(ANIMATION_CONTAINER_SHOWN);\n }\n _this.detachRepositionHandlers();\n };\n _this.onClosed = function () {\n if (_this.state.current === Status.hiding && _this.state.previous === Status.shown) {\n _this.setState({ current: Status.hidden, previous: _this.state.current });\n }\n if (_this.props.onClose) {\n _this.props.onClose.call(undefined, { target: _this });\n }\n };\n validatePackage(packageMetadata);\n _this._domService = new DOMService();\n _this._alignService = new AlignService(_this._domService);\n _this._positionService = new PositionService(_this._domService);\n _this.reposition = throttle(_this.reposition.bind(_this), FRAME_DURATION);\n return _this;\n }\n /**\n * @hidden\n */\n Popup.getDerivedStateFromProps = function (props, state) {\n var show = props.show, anchor = props.anchor, anchorAlign = props.anchorAlign, appendTo = props.appendTo, collision = props.collision, popupAlign = props.popupAlign, className = props.className, popupClass = props.popupClass, style = props.style, offset = props.offset, contentKey = props.contentKey;\n var nextState = __assign({}, state, { props: {\n show: show, anchor: anchor, anchorAlign: anchorAlign, appendTo: appendTo, collision: collision, popupAlign: popupAlign, className: className, popupClass: popupClass, style: style, offset: offset, contentKey: contentKey\n } });\n if (props.show) {\n if (state.current === Status.hidden || state.current === Status.hiding) {\n return __assign({}, nextState, { current: Status.showing, previous: state.current });\n }\n if (state.current === Status.showing) {\n return __assign({}, nextState, { current: Status.shown, previous: state.current });\n }\n if (state.current === Status.shown &&\n (!isEquivalent(offset, state.props.offset) ||\n !isEquivalent(anchorAlign, state.props.anchorAlign) ||\n !isEquivalent(appendTo, state.props.appendTo) ||\n !isEquivalent(collision, state.props.collision) ||\n !isEquivalent(popupAlign, state.props.popupAlign) ||\n !isEquivalent(style, state.props.style) ||\n anchor !== state.props.anchor ||\n popupClass !== state.props.popupClass ||\n className !== state.props.className)) {\n return __assign({}, nextState, { current: Status.reposition, previous: state.current });\n }\n return nextState;\n }\n if (state.current === Status.hiding || state.current === Status.hidden) {\n return __assign({}, nextState, { current: Status.hidden, previous: state.current });\n }\n return __assign({}, nextState, { current: Status.hiding, previous: state.current });\n };\n /**\n * @hidden\n */\n Popup.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n else if (this.state.current === Status.hiding && this._popup) {\n this.onClosing(this._popup);\n this.animate(this._popup.firstChild, 'exit', this.onClosed);\n }\n else if (this.state.current === Status.reposition && this.state.previous === Status.shown) {\n this.setState({ current: Status.shown, previous: this.state.current });\n }\n else if (this.state.current === Status.shown &&\n prevProps.contentKey !== this.props.contentKey && this._popup) {\n this.setPosition(this._popup);\n }\n };\n /**\n * @hidden\n */\n Popup.prototype.componentDidMount = function () {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n };\n /**\n * @hidden\n */\n Popup.prototype.componentWillUnmount = function () {\n this.detachRepositionHandlers();\n };\n /**\n * @hidden\n */\n Popup.prototype.render = function () {\n var _this = this;\n var _a = this.props, children = _a.children, className = _a.className, popupClass = _a.popupClass, show = _a.show, id = _a.id;\n var appendTo = this.props.appendTo ?\n this.props.appendTo :\n canUseDOM ?\n (this.props.anchor && this.props.anchor.ownerDocument ? this.props.anchor.ownerDocument.body : document.body)\n : undefined;\n if (this.state.current === Status.reposition && this.state.previous === Status.shown && this._popup) {\n this.setPosition(this._popup);\n }\n var style = Object.assign({}, { position: 'absolute' }, this.props.style || {});\n var closing = this.state.current === Status.hiding;\n if ((show || closing) && appendTo) {\n var popup = (React.createElement(\"div\", { className: classNames(ANIMATION_CONTAINER, ANIMATION_CONTAINER_RELATIVE, className), id: id, ref: function (e) { return _this._popup = e; }, style: style },\n React.createElement(\"div\", { className: classNames(popupClass, K_POPUP, ANIMATION_CONTAINER_CHILD), style: { transitionDelay: '0ms' } }, children)));\n return ReactDOM.createPortal(popup, appendTo);\n }\n return null;\n };\n Object.defineProperty(Popup.prototype, \"animationDuration\", {\n get: function () {\n var animate = this.props.animate;\n var enter = 0;\n var exit = 0;\n if (animate) {\n if (animate === true) {\n enter = exit = 300;\n }\n else {\n enter = animate.openDuration || 0;\n exit = animate.closeDuration || 0;\n }\n }\n return { enter: enter, exit: exit };\n },\n enumerable: true,\n configurable: true\n });\n Popup.prototype.attachRepositionHandlers = function (element) {\n var _this = this;\n this.detachRepositionHandlers();\n this._scrollableParents = this._domService.scrollableParents(this.props.anchor || element);\n this._scrollableParents.map(function (p) { return p.addEventListener('scroll', _this.reposition); });\n window.addEventListener('resize', this.reposition);\n };\n Popup.prototype.detachRepositionHandlers = function () {\n var _this = this;\n if (this._scrollableParents) {\n this._scrollableParents.map(function (p) { return p.removeEventListener('scroll', _this.reposition); });\n this._scrollableParents = undefined;\n }\n window.removeEventListener('resize', this.reposition);\n };\n Popup.prototype.reposition = function () {\n this.setState({ current: Status.reposition, previous: this.state.current });\n };\n /**\n * @hidden\n */\n Popup.propTypes = {\n anchor: function (props) {\n var anchor = props.anchor;\n if (anchor && typeof anchor.nodeType !== 'number') {\n return new Error('Invalid prop `anchor` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n appendTo: function (props) {\n var element = props.appendTo;\n if (element && typeof element.nodeType !== 'number') {\n return new Error('Invalid prop `appendTo` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n className: PropTypes.string,\n id: PropTypes.string,\n popupClass: PropTypes.string,\n collision: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n CollisionType.fit,\n CollisionType.flip\n ]),\n vertical: PropTypes.oneOf([\n CollisionType.fit,\n CollisionType.flip\n ])\n }),\n anchorAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n popupAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n offset: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number\n }),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node\n ]),\n show: PropTypes.bool,\n animate: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })\n ])\n };\n /**\n * @hidden\n */\n Popup.defaultProps = {\n collision: {\n horizontal: CollisionType.fit,\n vertical: CollisionType.flip\n },\n anchorAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.bottom\n },\n popupAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.top\n },\n offset: DEFAULT_OFFSET,\n animate: true,\n // appendTo: document.body,\n show: false\n };\n return Popup;\n}(React.Component));\nexport { Popup };\n","var __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};\nimport * as React from 'react';\nimport { Popup as PopupComponent } from './Popup';\n/**\n * The PopupPropsContext. It allows to configure the Popup props from a wrapper component.\n *\n * @example\n * ```jsx-no-run\n * ({ ...props, appendTo: document.querySelector('myPopupsContainer') })}>\n * \n * \n * \n * ```\n */\nexport var PopupPropsContext = React.createContext(function (props) { return props; });\n/**\n * The KendoReact Popup component.\n */\nexport var Popup = React.forwardRef(function (props, ref) {\n var contextPropsCallback = React.useContext(PopupPropsContext);\n var popupProps = contextPropsCallback.call(undefined, props);\n return (React.createElement(PopupComponent, __assign({ ref: ref }, popupProps)));\n});\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { Popup } from '@progress/kendo-react-popup';\n/**\n * @hidden\n */\nvar ListContainer = /** @class */ (function (_super) {\n __extends(ListContainer, _super);\n function ListContainer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ListContainer.prototype.render = function () {\n var _a = this.props, children = _a.children, width = _a.width, dir = _a.dir, itemsCount = _a.itemsCount, popupSettings = _a.popupSettings;\n return (React.createElement(Popup, __assign({ style: { width: width, direction: dir }, contentKey: itemsCount && itemsCount.join() }, popupSettings), children));\n };\n return ListContainer;\n}(React.Component));\nexport default ListContainer;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * @hidden\n */\nvar ListFilter = /** @class */ (function (_super) {\n __extends(ListFilter, _super);\n function ListFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ListFilter.prototype.render = function () {\n var _this = this;\n return (React.createElement(\"span\", { className: \"k-list-filter\" },\n React.createElement(\"input\", { ref: function (input) { return _this.input = input; }, value: this.props.value || '', className: \"k-textbox\", onChange: this.props.onChange, onKeyDown: this.props.onKeyDown }),\n React.createElement(\"span\", { className: \"k-icon k-i-search\" })));\n };\n return ListFilter;\n}(React.Component));\nexport default ListFilter;\n","/**\n * @hidden\n */\nvar isPresent = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n */\nvar sameCharsOnly = function (word, character) {\n for (var idx = 0; idx < word.length; idx++) {\n if (word.charAt(idx) !== character) {\n return false;\n }\n }\n return true;\n};\n/**\n * @hidden\n */\nvar shuffleData = function (data, splitIndex, defaultItem) {\n var result = data;\n if (defaultItem) {\n result = [defaultItem].concat(result);\n }\n return result.slice(splitIndex).concat(result.slice(0, splitIndex));\n};\n/**\n * @hidden\n */\nvar matchText = function (text, word, ignoreCase) {\n if (!isPresent(text)) {\n return false;\n }\n var temp = String(text);\n if (ignoreCase) {\n temp = temp.toLowerCase();\n }\n return temp.indexOf(word) === 0;\n};\n/**\n * @hidden\n */\nvar scrollToItem = function (scrollElem, list, itemIndex, translate, virtualScroll) {\n var viewportHeight = scrollElem.offsetHeight;\n var li = list.children.item(itemIndex);\n var itemOffsetTop = li.offsetTop + (virtualScroll ? translate - scrollElem.scrollTop : 0);\n var itemHeight = li.offsetHeight;\n if (virtualScroll) {\n var diff = 0;\n if (itemOffsetTop + itemHeight > viewportHeight) {\n diff = itemOffsetTop + itemHeight - viewportHeight;\n }\n else if (itemOffsetTop < 0) {\n diff = itemOffsetTop;\n }\n if (diff !== 0) {\n scrollElem.scrollTop += diff;\n }\n else if (scrollElem.scrollTop === 0 && translate !== 0) {\n scrollElem.scrollTop = translate;\n }\n }\n else {\n if (itemOffsetTop + itemHeight > viewportHeight + scrollElem.scrollTop) {\n scrollElem.scrollTop = (itemOffsetTop + itemHeight - viewportHeight);\n }\n else if (itemOffsetTop < scrollElem.scrollTop) {\n scrollElem.scrollTop -= scrollElem.scrollTop - itemOffsetTop;\n }\n }\n};\n/**\n * @hidden\n */\nvar itemIndexStartsWith = function (items, text, field) {\n var result = -1;\n if (text) {\n text = text.toLowerCase();\n for (var i = 0; i < items.length; i++) {\n var itemText = (getItemValue(items[i], field) || '') + '';\n if (itemText && itemText.toLowerCase().startsWith(text)) {\n result = i;\n break;\n }\n }\n }\n return result;\n};\n/**\n * @hidden\n */\nvar getItemIndexByText = function (data, text, textField, matchCase) {\n if (matchCase === void 0) { matchCase = false; }\n var casing = function (value) { return matchCase ? value : value.toLowerCase(); };\n return data.findIndex(function (item) {\n return textField ? casing(getItemValue(item, textField)) === casing(text) :\n casing(text) === casing(item.toString());\n });\n};\n/**\n * @hidden\n */\nvar getItemValue = function (item, field) {\n if (field && isPresent(item)) {\n var path = field.split('.');\n var data_1 = item;\n path.forEach(function (p) {\n data_1 = data_1 ? data_1[p] : undefined;\n });\n return data_1;\n }\n return item;\n};\n/**\n * @hidden\n */\nvar matchDataCollections = function (data1, data2, key) {\n if (data1 === void 0) { data1 = []; }\n if (data2 === void 0) { data2 = []; }\n if (data1 === data2) {\n return true;\n }\n if (data1.length !== data2.length) {\n return false;\n }\n for (var i = 0; i < data1.length; i++) {\n if (!areSame(data1[i], data2[i], key)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @hidden\n */\nvar removeDataItems = function (items, toRemove, key) {\n toRemove.forEach(function (item) {\n var itemIndex = items.findIndex(function (i) { return areSame(i, item, key); });\n if (itemIndex !== -1) {\n items.splice(itemIndex, 1);\n }\n });\n};\n/**\n * @hidden\n */\nvar areSame = function (item1, item2, key) {\n return item1 === item2 ||\n (isPresent(item1) === isPresent(item2) && getItemValue(item1, key) === getItemValue(item2, key));\n};\n/**\n * @hidden\n */\nvar getFocusedItem = function (data, value, textField) {\n if (value) {\n var selectedIndex = getItemIndexByText(data, value, textField, true);\n return selectedIndex !== -1 ? data[selectedIndex] : data[itemIndexStartsWith(data, value, textField)];\n }\n return data[0];\n};\n/**\n * @hidden\n */\nvar suggestValue = function (value, data, textField) {\n if (data === void 0) { data = []; }\n var suggested = '';\n if (value) {\n var suggestedItem = data[itemIndexStartsWith(data, value, textField)];\n if (suggestedItem) {\n var suggestedText = getItemValue(suggestedItem, textField);\n if (value.toLowerCase() !== suggestedText.toLowerCase()) {\n suggested = suggestedText.substring(value.length);\n }\n }\n }\n return suggested;\n};\n/**\n * @hidden\n */\nvar preventDefaultNonInputs = function (event) {\n if (event.target.nodeName !== 'INPUT') {\n event.preventDefault();\n }\n};\n/**\n * @hidden\n */\nvar matchTags = function (tag1, tag2, key) {\n if (!!tag1 !== !!tag2 || tag1.text !== tag2.text) {\n return false;\n }\n return tag1 === tag2 || matchDataCollections(tag1.data, tag2.data, key);\n};\nexport { isPresent, sameCharsOnly, shuffleData, matchText, scrollToItem, itemIndexStartsWith, getItemIndexByText, getItemValue, matchDataCollections, removeDataItems, areSame, getFocusedItem, preventDefaultNonInputs, suggestValue, matchTags };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\nimport { getItemValue } from './utils';\nvar preventDefault = function (e) { return e.preventDefault(); };\n/**\n * @hidden\n */\nvar ListDefaultItem = /** @class */ (function (_super) {\n __extends(ListDefaultItem, _super);\n function ListDefaultItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ListDefaultItem.prototype.render = function () {\n var _a = this.props, selected = _a.selected, defaultItem = _a.defaultItem, textField = _a.textField;\n return (React.createElement(\"div\", { onClick: this.props.onClick, onMouseDown: preventDefault, className: classNames('k-list-optionlabel', {\n 'k-state-selected': selected\n }) }, getItemValue(defaultItem, textField) || ''));\n };\n return ListDefaultItem;\n}(React.Component));\nexport default ListDefaultItem;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\nimport { getItemValue } from './utils';\n// tslint:enable:max-line-length\n/**\n * @hidden\n */\nvar ListItem = /** @class */ (function (_super) {\n __extends(ListItem, _super);\n function ListItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleClick = function (e) { return _this.props.onClick(_this.props.index, e); };\n return _this;\n }\n ListItem.prototype.render = function () {\n var _a = this.props, selected = _a.selected, group = _a.group, dataItem = _a.dataItem, renderer = _a.render;\n var item = (React.createElement(\"li\", { id: this.props.id, role: \"option\", \"aria-selected\": selected, className: classNames('k-item', {\n 'k-state-selected': selected,\n 'k-state-focused': this.props.focused,\n 'k-first': Boolean(group)\n }), onClick: this.handleClick },\n getItemValue(dataItem, this.props.textField).toString(),\n group !== undefined ? React.createElement(\"div\", { className: \"k-group\" }, group) : null));\n return renderer !== undefined ? renderer.call(undefined, item, this.props) : item;\n };\n return ListItem;\n}(React.Component));\nexport default ListItem;\n","var _a;\n/**\n * @hidden\n */\nexport var nodata = 'dropdowns.nodata';\n/**\n * @hidden\n */\nexport var clear = 'dropdowns.clear';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[clear] = 'clear',\n _a[nodata] = 'NO DATA FOUND.',\n _a);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport ListItem from './ListItem';\nimport { areSame, getItemValue } from './utils';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, nodata } from '../messages';\n/**\n * @hidden\n */\nvar List = /** @class */ (function (_super) {\n __extends(List, _super);\n function List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n List.prototype.renderItems = function () {\n var _this = this;\n var _a = this.props, textField = _a.textField, valueField = _a.valueField, groupField = _a.groupField, optionsGuid = _a.optionsGuid, _b = _a.skip, skip = _b === void 0 ? 0 : _b, focusedIndex = _a.focusedIndex, _c = _a.highlightSelected, highlightSelected = _c === void 0 ? true : _c, value = _a.value, data = _a.data, itemRender = _a.itemRender;\n var isArray = Array.isArray(value);\n return data.map(function (item, index) {\n var realIndex = skip + index;\n var selected = highlightSelected &&\n ((!isArray && areSame(item, value, valueField)) ||\n (isArray && value.findIndex(function (i) { return areSame(i, item, valueField); }) !== -1));\n var group = undefined;\n var current, previous;\n if (index > 0 && groupField !== undefined) {\n current = getItemValue(item, groupField);\n previous = getItemValue(data[index - 1], groupField);\n if (current && previous && current !== previous) {\n group = current;\n }\n }\n return (React.createElement(ListItem, { id: \"option-\" + optionsGuid + \"-\" + realIndex, dataItem: item, selected: selected, focused: focusedIndex === index, index: realIndex, key: realIndex, onClick: _this.props.onClick, textField: textField, group: group, render: itemRender }));\n });\n };\n List.prototype.renderNoValueElement = function (localizationService) {\n var noDataRender = this.props.noDataRender;\n var noDataElement = (React.createElement(\"div\", { className: 'k-nodata' },\n React.createElement(\"div\", null, localizationService.toLanguageString(nodata, messages[nodata]))));\n return noDataRender ?\n noDataRender.call(undefined, noDataElement) : noDataElement;\n };\n List.prototype.render = function () {\n var localizationService = provideLocalizationService(this);\n var _a = this.props, id = _a.id, show = _a.show, wrapperCssClass = _a.wrapperCssClass, wrapperStyle = _a.wrapperStyle, listStyle = _a.listStyle, listRef = _a.listRef, wrapperRef = _a.wrapperRef, _b = _a.listClassName, listClassName = _b === void 0 ? 'k-list' : _b;\n var items = this.renderItems();\n return (items.length ? (React.createElement(\"div\", { className: wrapperCssClass, style: wrapperStyle, ref: wrapperRef, onMouseDown: this.props.onMouseDown, onBlur: this.props.onBlur, onScroll: this.props.onScroll, unselectable: \"on\" },\n React.createElement(\"ul\", { id: id, role: \"listbox\", \"aria-hidden\": !show ? true : undefined, className: listClassName + ' k-reset', ref: listRef, style: listStyle }, items))) : this.renderNoValueElement(localizationService));\n };\n return List;\n}(React.Component));\nexport default List;\nregisterForLocalization(List);\n","var maxHeightIE = 1533915;\n/**\n * @hidden\n */\nvar VirtualScroll = /** @class */ (function () {\n function VirtualScroll() {\n var _this = this;\n this.containerHeight = 0;\n this.skip = 0;\n this.total = 0;\n this.enabled = false;\n this.pageSize = 0;\n this.itemHeight = 0;\n this.prevScrollPos = 0;\n this.listTranslate = 0;\n this.scrollSyncing = false;\n this.scrollerRef = function (element) {\n var vs = _this;\n vs.container = element;\n if (element) {\n element.setAttribute('unselectable', 'on');\n window.setTimeout(vs.calcScrollElementHeight.bind(vs), 0);\n }\n };\n this.calcScrollElementHeight = function () {\n _this.scrollSyncing = true;\n var heightChanged = false;\n _this.itemHeight = _this.list ? _this.list.children[0].offsetHeight : _this.itemHeight;\n _this.containerHeight = Math.min(maxHeightIE, _this.itemHeight * _this.total);\n var newHeight = _this.containerHeight;\n if (_this.scrollElement) {\n heightChanged = _this.scrollElement.style.height !== newHeight + 'px';\n if (heightChanged) {\n _this.scrollElement.style.height = newHeight + 'px';\n }\n }\n _this.scrollSyncing = false;\n return heightChanged;\n };\n this.scrollHandler = this.scrollHandler.bind(this);\n }\n Object.defineProperty(VirtualScroll.prototype, \"translate\", {\n get: function () {\n return this.listTranslate;\n },\n enumerable: true,\n configurable: true\n });\n VirtualScroll.prototype.changePage = function (skip, e) {\n var newSkip = Math.min(Math.max(0, skip), this.total - this.pageSize);\n if (newSkip !== this.skip) {\n this.PageChange({ skip: newSkip, take: this.pageSize }, e);\n }\n };\n VirtualScroll.prototype.translateTo = function (dY) {\n this.listTranslate = dY;\n if (this.list) {\n this.list.style.transform = 'translateY(' + dY + 'px)';\n }\n };\n VirtualScroll.prototype.reset = function () {\n if (this.container) {\n this.calcScrollElementHeight();\n this.container.scrollTop = 0;\n this.translateTo(0);\n }\n };\n VirtualScroll.prototype.scrollToEnd = function () {\n if (this.container && this.list) {\n this.calcScrollElementHeight();\n this.container.scrollTop = this.container.scrollHeight - this.container.offsetHeight;\n this.translateTo(this.container.scrollHeight - this.list.offsetHeight);\n }\n };\n VirtualScroll.prototype.localScrollUp = function (e) {\n var height = this.itemHeight;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.listTranslate;\n var items;\n var additionalOnTop = scrollTop - targetTranslate;\n if (additionalOnTop > height) {\n return;\n }\n for (items = 0; items < this.skip; items++) {\n if (targetTranslate + height + additionalOnTop <= scrollTop) {\n break;\n }\n targetTranslate -= height;\n }\n targetTranslate = this.validateTranslate(targetTranslate);\n if (this.skip - items <= 0 && targetTranslate >= scrollTop) {\n this.translateTo(0);\n this.changePage(0, e);\n this.container.scrollTop = 0;\n return;\n }\n if (targetTranslate !== this.listTranslate) {\n this.translateTo(targetTranslate);\n this.changePage(this.skip - items, e);\n }\n };\n VirtualScroll.prototype.localScrollDown = function (e) {\n var height = this.itemHeight;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.listTranslate;\n var itemsLenght = this.list.children.length;\n var items;\n for (items = 0; items < itemsLenght; items++) {\n if (targetTranslate + height >= scrollTop) {\n break;\n }\n targetTranslate += height;\n }\n targetTranslate = this.validateTranslate(targetTranslate);\n if (items >= itemsLenght && this.skip + items >= this.total) {\n this.translateTo(targetTranslate);\n this.changePage(this.total - 1, e);\n }\n else if (targetTranslate !== this.listTranslate) {\n this.translateTo(targetTranslate);\n this.changePage(this.skip + items, e);\n }\n };\n VirtualScroll.prototype.scrollNonStrict = function (e) {\n var floatItemIndex = this.total * this.prevScrollPos / (this.containerHeight);\n var itemIndex = Math.min(Math.floor(floatItemIndex), this.total - 1);\n var targetTranslate = this.containerHeight * floatItemIndex / this.total;\n targetTranslate = this.validateTranslate(targetTranslate);\n this.translateTo(targetTranslate);\n this.changePage(itemIndex, e);\n };\n VirtualScroll.prototype.scrollHandler = function (e) {\n var scrollTop = this.container ? this.container.scrollTop : 0;\n var prev = this.prevScrollPos;\n this.prevScrollPos = scrollTop;\n if (!this.enabled || !this.list || !this.container || this.scrollSyncing) {\n return;\n }\n if (scrollTop - prev <= 0 && scrollTop > this.listTranslate - this.list.scrollHeight / 10) {\n this.localScrollUp(e);\n }\n else if (scrollTop - prev > 0 && scrollTop < this.listTranslate + this.list.scrollHeight * 2 / 3) {\n this.localScrollDown(e);\n }\n else {\n this.scrollNonStrict(e);\n }\n };\n VirtualScroll.prototype.validateTranslate = function (translate) {\n translate = Math.max(0, translate);\n translate = Math.min(this.containerHeight - this.list.offsetHeight, translate);\n return translate;\n };\n return VirtualScroll;\n}());\nexport default VirtualScroll;\n","import { isPresent } from './utils';\nimport { Keys } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar Navigation = /** @class */ (function () {\n function Navigation() {\n }\n Navigation.prototype.navigate = function (args) {\n var keyCode = args.keyCode;\n if (keyCode === Keys.up || keyCode === Keys.left) {\n return this.next({ current: args.current, min: args.min, max: args.max, step: -1 });\n }\n else if (keyCode === Keys.down || keyCode === Keys.right) {\n return this.next({ current: args.current, min: args.min, max: args.max, step: 1 });\n }\n else if (keyCode === Keys.home) {\n return 0;\n }\n else if (keyCode === Keys.end) {\n return args.max;\n }\n };\n Navigation.prototype.next = function (args) {\n if (!isPresent(args.current)) {\n return args.min;\n }\n else {\n return Math.min(args.max, Math.max(args.current + args.step, args.min));\n }\n };\n return Navigation;\n}());\nexport { Navigation };\n","var __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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport VirtualScroll from './VirtualScroll';\nimport { Navigation } from './Navigation';\nimport { scrollToItem, areSame } from './utils';\nimport { guid } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DropDownBase = /** @class */ (function () {\n function DropDownBase(component) {\n var _this = this;\n this.vs = new VirtualScroll();\n this.navigation = new Navigation();\n this.handleItemClick = function (index, event) {\n var state = _this.initState();\n state.syntheticEvent = event;\n _this.component.handleItemSelect(index, state);\n _this.togglePopup(state);\n _this.applyState(state);\n };\n this.handleFocus = function (event) {\n if (!_this.component.state.focused) {\n var state = _this.initState();\n state.data.focused = true;\n state.events.push({ type: 'onFocus' });\n state.syntheticEvent = event;\n _this.applyState(state);\n }\n };\n this.filterChanged = function (text, state) {\n var _a = _this.component.props, textField = _a.textField, filterable = _a.filterable;\n if (filterable) {\n state.events.push({\n type: 'onFilterChange',\n filter: {\n field: textField,\n operator: 'contains',\n ignoreCase: true,\n value: text\n }\n });\n }\n };\n this.togglePopup = function (state) {\n var props = _this.component.props;\n var opened = props.opened !== undefined ? props.opened : _this.component.state.opened;\n if (props.opened === undefined) {\n state.data.opened = !opened;\n }\n if (opened) {\n state.events.push({ type: 'onClose' });\n }\n else {\n state.events.push({ type: 'onOpen' });\n _this.calculatePopupWidth();\n }\n };\n this.pageChange = function (page, syntheticEvent) {\n var state = _this.initState();\n state.syntheticEvent = syntheticEvent;\n _this.triggerOnPageChange(state, page.skip, page.take);\n _this.applyState(state);\n };\n this.scrollToVirtualItem = function (virtual, selectedItemIndex) {\n var vs = _this.vs;\n vs.enabled = false;\n if (virtual.skip === 0) {\n vs.reset();\n }\n else if (virtual.skip + virtual.pageSize === virtual.total) {\n vs.scrollToEnd();\n }\n else {\n var scrollTop = vs.translate;\n if (scrollTop === 0) {\n vs.calcScrollElementHeight();\n scrollTop = (vs.itemHeight * virtual.skip);\n vs.translateTo(scrollTop - vs.itemHeight);\n }\n if (vs.container) {\n vs.container.scrollTop = scrollTop;\n }\n _this.scrollToItem(selectedItemIndex, true);\n }\n window.setTimeout(function () { return vs.enabled = true; }, 10);\n };\n // Common rendering\n this.renderScrollWrapper = function (children, onScroll) {\n var popupSettings = _this.getPopupSettings();\n var vs = _this.vs;\n return vs.enabled ? (React.createElement(\"div\", { onScroll: function (e) {\n vs.scrollHandler(e);\n if (onScroll) {\n onScroll.call(undefined, e);\n }\n }, ref: vs.scrollerRef, style: {\n height: popupSettings.height,\n overflowY: 'scroll'\n } }, children)) :\n (children);\n };\n this.renderScrollElement = function () {\n var vs = _this.vs;\n return vs.enabled && (React.createElement(\"div\", { ref: function (element) { return vs.scrollElement = element; }, key: 'scrollElementKey' }));\n };\n this.listBoxId = guid();\n this.guid = guid();\n this.component = component;\n this.vs.PageChange = this.pageChange;\n }\n DropDownBase.prototype.didMount = function () {\n var props = this.component.props;\n var popupSettings = props.popupSettings || {};\n var style = props.style || {};\n var popupWidth = popupSettings.width;\n var shouldUpdate = props.opened === true;\n if (popupWidth === undefined) {\n this.calculatePopupWidth();\n }\n if (props.dir === undefined && style.direction === undefined) {\n this.calculateDir();\n shouldUpdate = true;\n }\n if (shouldUpdate) {\n this.component.forceUpdate();\n }\n };\n DropDownBase.prototype.calculateDir = function () {\n var element = this.component.element;\n if (element && element.ownerDocument && element.ownerDocument.defaultView) {\n this.dirCalculated = element.ownerDocument.defaultView.getComputedStyle(element).direction || undefined;\n }\n };\n DropDownBase.prototype.calculatePopupWidth = function () {\n if (this.wrapper) {\n this.popupWidth = this.wrapper.offsetWidth + 'px';\n }\n };\n DropDownBase.prototype.scrollToItem = function (itemIndex, vsEnabled) {\n var list = this.list || this.vs.list;\n if (list && itemIndex >= 0) {\n var vs = this.vs;\n var scrollElement = (vs.container || list.parentNode);\n var virtualScroll = vsEnabled !== undefined ? vsEnabled : vs.enabled;\n scrollToItem(scrollElement, list, itemIndex, vs.translate, virtualScroll);\n }\n };\n DropDownBase.prototype.initState = function () {\n var state = {\n data: {},\n events: [],\n syntheticEvent: undefined\n };\n return state;\n };\n DropDownBase.prototype.applyState = function (state) {\n var _this = this;\n if (Object.keys(state.data).length > 0) {\n this.component.setState(state.data);\n }\n var eventArgs = {\n syntheticEvent: state.syntheticEvent,\n nativeEvent: state.syntheticEvent ? state.syntheticEvent.nativeEvent : undefined,\n target: this.component,\n value: this.component.value\n };\n state.events.forEach(function (eventData) {\n var type = eventData.type;\n delete eventData.type;\n var handler = type && _this.component.props[type];\n if (handler) {\n handler.call(undefined, __assign({}, eventArgs, eventData));\n }\n });\n };\n DropDownBase.prototype.triggerOnPageChange = function (state, skip, take) {\n var virtual = this.component.props.virtual;\n if (virtual) {\n var newSkip = Math.min(Math.max(0, skip), Math.max(0, virtual.total - take));\n if (newSkip !== virtual.skip) {\n state.events.push({\n type: 'onPageChange',\n page: { skip: newSkip, take: take }\n });\n }\n }\n };\n DropDownBase.prototype.triggerPageChangeCornerItems = function (item, state) {\n var props = this.component.props;\n var _a = props.data, data = _a === void 0 ? [] : _a, dataItemKey = props.dataItemKey, virtual = props.virtual;\n var opened = props.opened !== undefined ? props.opened : this.component.state.opened;\n if (item && virtual && this.vs.enabled) {\n if (virtual.skip > 0 && areSame(item, data[0], dataItemKey)) {\n this.triggerOnPageChange(state, virtual.skip - 1, virtual.pageSize);\n }\n else if (!opened && virtual.skip + virtual.pageSize < virtual.total &&\n areSame(item, data[data.length - 1], dataItemKey)) {\n this.triggerOnPageChange(state, virtual.skip + 1, virtual.pageSize);\n }\n }\n };\n DropDownBase.prototype.getPopupSettings = function () {\n return Object\n .assign({}, DropDownBase.defaultProps.popupSettings, this.component.props.popupSettings);\n };\n DropDownBase.basicPropTypes = {\n opened: PropTypes.bool,\n disabled: PropTypes.bool,\n dir: PropTypes.string,\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n data: PropTypes.array,\n textField: PropTypes.string,\n className: PropTypes.string,\n label: PropTypes.string,\n loading: PropTypes.bool,\n popupSettings: PropTypes.shape({\n animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })]),\n popupClass: PropTypes.string,\n className: PropTypes.string,\n appendTo: PropTypes.any,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n itemRender: PropTypes.func,\n listNoDataRender: PropTypes.func,\n focusedItemIndex: PropTypes.func,\n header: PropTypes.node,\n footer: PropTypes.node\n };\n DropDownBase.propTypes = __assign({}, DropDownBase.basicPropTypes, { value: PropTypes.any, defaultValue: PropTypes.any, filterable: PropTypes.bool, filter: PropTypes.string, virtual: PropTypes.shape({\n pageSize: PropTypes.number.isRequired,\n skip: PropTypes.number.isRequired,\n total: PropTypes.number.isRequired\n }), onFilterChange: PropTypes.func, onPageChange: PropTypes.func });\n DropDownBase.defaultProps = {\n popupSettings: {\n height: '200px'\n },\n required: false,\n validityStyles: true\n };\n return DropDownBase;\n}());\nexport default DropDownBase;\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-dropdowns',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584401,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, Keys, getTabIndex } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport ListContainer from '../common/ListContainer';\nimport ListFilter from '../common/ListFilter';\nimport ListDefaultItem from '../common/ListDefaultItem';\nimport List from '../common/List';\nimport DropDownBase from '../common/DropDownBase';\nimport { isPresent, getItemValue, sameCharsOnly, shuffleData, matchText, areSame, preventDefaultNonInputs, getFocusedItem } from '../common/utils';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nvar VALIDATION_MESSAGE = 'Please select a value from the list!';\n/**\n * Represents the [KendoReact DropDownList component]({% slug overview_dropdownlist %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * dropdownlist = null;\n * render() {\n * return (\n *
    \n * this.dropdownlist = component}\n * />\n * \n *
    \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar DropDownList = /** @class */ (function (_super) {\n __extends(DropDownList, _super);\n function DropDownList(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {};\n _this.base = new DropDownBase(_this);\n _this.searchState = { word: '', last: '' };\n _this._skipFocusEvent = false;\n _this._filterInput = null;\n _this._navigated = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this.base.wrapper) {\n _this.base.wrapper.focus();\n }\n };\n /**\n * @hidden\n */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, virtual = _a.virtual, dataItemKey = _a.dataItemKey, defaultItem = _a.defaultItem;\n var skip = virtual ? virtual.skip : 0;\n var item = (index === -1 && defaultItem !== undefined) ?\n defaultItem : data[index - skip];\n var newSelected = !areSame(item, _this.value, dataItemKey);\n _this.triggerOnChange(item, state);\n if (newSelected) {\n _this.base.triggerPageChangeCornerItems(item, state);\n }\n };\n _this.renderDropDownWrapper = function () {\n var _a = _this.props, dataItemKey = _a.dataItemKey, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, disabled = _a.disabled, tabIndex = _a.tabIndex, loading = _a.loading, iconClassName = _a.iconClassName, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, valueRender = _a.valueRender;\n var focused = _this.state.focused;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var value = _this.value;\n var selectedIndex = data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n var text = getItemValue(value, textField);\n var valueDefaultRendering = (React.createElement(\"span\", { className: \"k-input\" }, text));\n var valueElement = valueRender !== undefined ?\n valueRender.call(undefined, valueDefaultRendering, value) : valueDefaultRendering;\n return (React.createElement(\"span\", { ref: function (el) { return _this.base.wrapper = el; }, role: 'listbox', tabIndex: getTabIndex(tabIndex, disabled), accessKey: _this.props.accessKey, className: classNames('k-dropdown-wrap', {\n 'k-state-focused': focused,\n 'k-state-disabled': disabled\n }), onKeyDown: _this.handleKeyDown, onKeyPress: _this.handleKeyPress, onClick: disabled ? undefined : _this.handleWrapperClick, \"aria-disabled\": disabled || undefined, \"aria-haspopup\": true, \"aria-expanded\": opened || false, \"aria-owns\": _this.base.listBoxId, \"aria-activedescendant\": opened ? ('option-' + _this.base.guid + '-' + (selectedIndex + virtual.skip)) : undefined, \"aria-label\": _this.props.label, \"aria-labelledby\": _this.props.ariaLabelledBy, \"aria-describedby\": _this.props.ariaDescribedBy, id: _this.props.id, title: _this.props.title },\n valueElement,\n React.createElement(\"span\", { className: \"k-select\" },\n React.createElement(\"span\", { className: classNames('k-icon', iconClassName, {\n 'k-i-arrow-s': !loading && !iconClassName,\n 'k-i-loading': loading && !iconClassName\n }) })),\n _this.dummySelect(value)));\n };\n _this.dummySelect = function (value) {\n /* Dummy component to support forms */\n return (React.createElement(\"select\", { name: _this.props.name, ref: function (el) { _this._select = el; }, tabIndex: -1, \"aria-hidden\": true, title: _this.props.label, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' } },\n React.createElement(\"option\", { value: _this.props.valueMap ? _this.props.valueMap.call(undefined, value) : value })));\n };\n _this.renderListContainer = function () {\n var _a = _this.props, header = _a.header, footer = _a.footer, dir = _a.dir, _b = _a.data, data = _b === void 0 ? [] : _b;\n var base = _this.base;\n var popupSettings = base.getPopupSettings();\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var virtual = _this.props.virtual !== undefined;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var listContainerProps = {\n dir: dir !== undefined ? dir : base.dirCalculated,\n width: popupWidth,\n popupSettings: {\n popupClass: popupSettings.popupClass,\n className: classNames('k-list-container k-reset', popupSettings.className),\n animate: popupSettings.animate,\n anchor: _this.element,\n show: opened,\n onOpen: _this.onPopupOpened,\n onClose: _this.onPopupClosed,\n appendTo: popupSettings.appendTo\n },\n itemsCount: [data.length]\n };\n return (React.createElement(ListContainer, __assign({}, listContainerProps),\n _this.renderListFilter(),\n virtual && _this.renderDefaultItem(),\n virtual && header,\n _this.base.renderScrollWrapper(React.createElement(React.Fragment, null,\n !virtual && _this.renderDefaultItem(),\n !virtual && header,\n _this.renderList(),\n !virtual && footer,\n _this.base.renderScrollElement())),\n virtual && footer));\n };\n _this.renderList = function () {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, listNoDataRender = _a.listNoDataRender, itemRender = _a.itemRender;\n var vs = _this.base.vs;\n var skip = virtual.skip;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var popupSettings = _this.base.getPopupSettings();\n var translate = \"translateY(\" + vs.translate + \"px)\";\n return (React.createElement(List, { id: _this.base.listBoxId, show: opened, data: data.slice(), focusedIndex: _this.focusedIndex(), value: _this.value, textField: textField, valueField: dataItemKey, optionsGuid: _this.base.guid, listRef: function (list) { return vs.list = _this.base.list = list; }, wrapperStyle: !vs.enabled ?\n { maxHeight: popupSettings.height } : { float: 'left', width: '100%' }, wrapperCssClass: !vs.enabled ? 'k-list-scroller' : undefined, listStyle: vs.enabled ?\n { transform: translate } : undefined, key: \"listkey\", skip: skip, onClick: _this.handleItemClick, itemRender: itemRender, noDataRender: listNoDataRender }));\n };\n _this.renderListFilter = function () {\n var filterText = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n return _this.props.filterable && (React.createElement(ListFilter, { value: filterText, ref: function (filter) { return _this._filterInput = filter && filter.input; }, onChange: _this.handleListFilterChange, onKeyDown: _this.handleKeyDown }));\n };\n _this.renderDefaultItem = function () {\n var _a = _this.props, textField = _a.textField, defaultItem = _a.defaultItem, dataItemKey = _a.dataItemKey;\n return defaultItem !== undefined && (React.createElement(ListDefaultItem, { defaultItem: defaultItem, textField: textField, selected: areSame(_this.value, defaultItem, dataItemKey), key: \"defaultitemkey\", onClick: _this.handleDefaultItemClick }));\n };\n _this.search = function (event) {\n clearTimeout(_this._typingTimeout);\n if (!_this.props.filterable) {\n _this._typingTimeout = window.setTimeout(function () { return _this.searchState.word = ''; }, _this.props.delay);\n _this.selectNext(event);\n }\n };\n _this.selectNext = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;\n var mappedData = data.map(function (item, idx) {\n return { item: item, itemIndex: idx };\n });\n var word = _this.searchState.word;\n var last = _this.searchState.last;\n var isInLoop = sameCharsOnly(word, last);\n var dataLength = mappedData.length;\n var startIndex = Math.max(0, data.findIndex(function (i) { return areSame(i, _this.value, dataItemKey); }));\n var defaultItem;\n if (_this.props.defaultItem) {\n defaultItem = { item: _this.props.defaultItem, itemIndex: -1 };\n dataLength += 1;\n startIndex += 1;\n }\n startIndex += isInLoop ? 1 : 0;\n mappedData = shuffleData(mappedData, startIndex, defaultItem);\n var text, loopMatch, nextMatch, index = 0;\n var _c = _this.props, textField = _c.textField, ignoreCase = _c.ignoreCase;\n for (; index < dataLength; index++) {\n text = getItemValue(mappedData[index].item, textField);\n loopMatch = isInLoop && matchText(text, last, ignoreCase);\n nextMatch = matchText(text, word, ignoreCase);\n if (loopMatch || nextMatch) {\n index = mappedData[index].itemIndex;\n break;\n }\n }\n if (index !== dataLength) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.handleItemSelect(index, state);\n _this.applyState(state);\n _this._valueDuringOnChange = undefined;\n }\n };\n _this.handleKeyDown = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, filterable = _a.filterable, disabled = _a.disabled, _c = _a.leftRightKeysNavigation, leftRightKeysNavigation = _c === void 0 ? true : _c, _d = _a.virtual, virtual = _d === void 0 ? { skip: 0, total: 0, pageSize: 0 } : _d;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var keyCode = event.keyCode;\n var homeOrEndKeys = keyCode === Keys.home || keyCode === Keys.end;\n var upOrDownKeys = keyCode === Keys.up || keyCode === Keys.down;\n var shouldOpen = !opened &&\n ((event.altKey && keyCode === Keys.down) || keyCode === Keys.enter || keyCode === Keys.space);\n var shouldClose = opened && ((event.altKey && keyCode === Keys.up) || keyCode === Keys.esc);\n var leftOrRightKeys = leftRightKeysNavigation && (keyCode === Keys.left || keyCode === Keys.right);\n var shouldNavigate = upOrDownKeys || (!filterable && (leftOrRightKeys || homeOrEndKeys));\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (disabled) {\n return;\n }\n else if (homeOrEndKeys && _this.base.vs.enabled) {\n if (keyCode === Keys.home) {\n if (virtual.skip !== 0) {\n _this.base.triggerOnPageChange(state, 0, virtual.pageSize);\n _this._navigated = true;\n }\n else {\n _this.triggerOnChange(data[0], state);\n }\n }\n else {\n if (virtual.skip < virtual.total - virtual.pageSize) {\n _this.base.triggerOnPageChange(state, virtual.total - virtual.pageSize, virtual.pageSize);\n _this._navigated = true;\n }\n else {\n _this.triggerOnChange(data[data.length - 1], state);\n }\n }\n }\n else if (opened && keyCode === Keys.enter) {\n var focusedIndex = _this.focusedIndex();\n if (focusedIndex !== undefined) {\n _this.handleItemSelect(focusedIndex, state);\n }\n _this.base.togglePopup(state);\n event.preventDefault();\n }\n else if (shouldOpen || shouldClose) {\n _this.base.togglePopup(state);\n event.preventDefault();\n }\n else if (shouldNavigate) {\n _this.onNavigate(state, keyCode);\n event.preventDefault();\n }\n _this.applyState(state);\n };\n _this.handleItemClick = function (index, event) {\n _this.base.handleItemClick(index, event);\n _this._valueDuringOnChange = undefined;\n };\n _this.handleFocus = function (event) {\n if (_this._skipFocusEvent) {\n return;\n }\n _this.base.handleFocus(event);\n };\n _this.handleBlur = function (event) {\n if (_this._skipFocusEvent || !_this.state.focused) {\n return;\n }\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n if (opened) {\n _this.base.togglePopup(state);\n }\n _this.applyState(state);\n };\n _this.handleDefaultItemClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.base.togglePopup(state);\n _this.triggerOnChange(_this.props.defaultItem, state);\n _this.applyState(state);\n };\n _this.handleWrapperClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!_this.state.focused) {\n state.data.focused = true;\n }\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n _this.handleKeyPress = function (event) {\n if (_this.props.filterable || event.which === 0 || event.keyCode === Keys.enter) {\n return;\n }\n var character = String.fromCharCode(event.charCode || event.keyCode);\n if (_this.props.ignoreCase) {\n character = character.toLowerCase();\n }\n if (character === ' ') {\n event.preventDefault();\n }\n _this.searchState = {\n word: _this.searchState.word + character,\n last: _this.searchState.last + character\n };\n _this.search(event);\n };\n _this.handleListFilterChange = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (_this.props.filter === undefined) {\n state.data.text = event.target.value;\n }\n _this.base.filterChanged(event.target.value, state);\n _this.applyState(state);\n };\n _this.onPopupOpened = function () {\n if (_this._filterInput) {\n _this.focusElement(_this._filterInput);\n }\n };\n _this.onPopupClosed = function () {\n if (_this.state.focused) {\n window.setTimeout(function () {\n if (_this.state.focused && _this.base.wrapper) {\n _this.focusElement(_this.base.wrapper);\n }\n });\n }\n };\n _this.setValidity = function () {\n if (_this._select && _this._select.setCustomValidity) {\n _this._select.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(DropDownList.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DropDownList.prototype, \"actionElement\", {\n /**\n * @hidden\n */\n get: function () {\n return this.base.wrapper;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DropDownList.prototype, \"value\", {\n /**\n * The value of the DropDownList.\n */\n get: function () {\n var value;\n if (this._valueDuringOnChange !== undefined) {\n value = this._valueDuringOnChange;\n }\n else if (this.props.value !== undefined) {\n value = this.props.value;\n }\n else if (this.state.value !== undefined) {\n value = this.state.value;\n }\n else if (this.props.defaultValue !== undefined) {\n value = this.props.defaultValue;\n }\n if (!isPresent(value) && this.props.defaultItem !== undefined) {\n value = this.props.defaultItem;\n }\n return value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DropDownList.prototype, \"index\", {\n /**\n * The index of the selected item.\n */\n get: function () {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;\n var value = this.value;\n // TO DO: deprecate it!\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DropDownList.prototype, \"name\", {\n /**\n * Gets the `name` property of the DropDownList.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DropDownList.prototype, \"validity\", {\n /**\n * Represents the validity state into which the DropDownList is set.\n */\n get: function () {\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required\n || (this.value !== null && this.value !== '' && this.value !== undefined));\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DropDownList.prototype, \"validityStyles\", {\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : DropDownList.defaultProps.validityStyles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DropDownList.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : DropDownList.defaultProps.required;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n DropDownList.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey, virtual = _a.virtual;\n var prevTotal = prevProps.virtual ? prevProps.virtual.total : 0;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && opened;\n var closing = prevOpened && !opened;\n if (!this.base.getPopupSettings().animate) {\n if (opening) {\n this.onPopupOpened();\n }\n else if (closing) {\n // this.onPopupClosed();\n }\n }\n if (virtual && virtual.total !== prevTotal) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n }\n else {\n var selectedItem_1 = this.value;\n var prevSelectedItem = prevProps.value !== undefined ? prevProps.value : prevState.value;\n var selectedItemIndex = data.findIndex(function (i) { return areSame(i, selectedItem_1, dataItemKey); });\n var selectedItemChanged = !areSame(prevSelectedItem, selectedItem_1, dataItemKey);\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, selectedItemIndex);\n }\n else if (opening && !virtual) {\n this.base.scrollToItem(selectedItemIndex);\n }\n else if (opened && prevOpened && selectedItem_1 && selectedItemChanged && !this._navigated) {\n this.base.scrollToItem(selectedItemIndex);\n }\n else if (opened && prevOpened && this._navigated) {\n if (this._navigated && virtual && virtual.skip === 0) {\n this.base.vs.reset();\n }\n else if (this._navigated && virtual && virtual.skip === virtual.total - virtual.pageSize) {\n this.base.vs.scrollToEnd();\n }\n }\n }\n this._navigated = false;\n this.setValidity();\n };\n /**\n * @hidden\n */\n DropDownList.prototype.componentDidMount = function () {\n this.base.didMount();\n this.setValidity();\n };\n /**\n * @hidden\n */\n DropDownList.prototype.render = function () {\n var _this = this;\n var _a = this.props, style = _a.style, className = _a.className, label = _a.label, dir = _a.dir, virtual = _a.virtual;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var text = getItemValue(this.value, this.props.textField);\n var isValid = !this.validityStyles || this.validity.valid;\n var base = this.base;\n var vs = base.vs;\n vs.enabled = virtual !== undefined;\n if (virtual !== undefined) {\n base.vs.skip = virtual.skip;\n base.vs.total = virtual.total;\n base.vs.pageSize = virtual.pageSize;\n }\n var dropdownlist = (React.createElement(\"span\", { ref: function (dropdown) { return _this._element = dropdown; }, className: classNames('k-widget k-dropdown', {\n 'k-state-invalid': !isValid\n }, className), style: !label\n ? style\n : __assign({}, style, { width: undefined }), dir: dir, onMouseDown: opened ? preventDefaultNonInputs : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur },\n this.renderDropDownWrapper(),\n this.renderListContainer()));\n return label ? (React.createElement(FloatingLabel, { label: label, editorValue: text, editorValid: isValid, editorDisabled: this.props.disabled, style: { width: style ? style.width : undefined }, children: dropdownlist })) : dropdownlist;\n };\n /**\n * @hidden\n */\n DropDownList.prototype.onNavigate = function (state, keyCode) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, defaultItem = _a.defaultItem, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0, total: 0, pageSize: 0 } : _c;\n var vs = this.base.vs;\n var value = this.value;\n var index = data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n var newIndex = this.base.navigation.navigate({\n current: virtual.skip + index,\n max: (vs.enabled ? virtual.total : data.length) - 1,\n min: defaultItem !== undefined ? -1 : 0,\n keyCode: keyCode\n });\n if (newIndex !== undefined) {\n this.handleItemSelect(newIndex, state);\n }\n this.applyState(state);\n };\n DropDownList.prototype.focusedIndex = function () {\n var filterText = isPresent(this.props.filter) ? this.props.filter : this.state.text;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, dataItemKey = _a.dataItemKey, textField = _a.textField, focusedItemIndex = _a.focusedItemIndex;\n var value = this.value;\n var selectedIndex = data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n var hasSelected = !(selectedIndex < 0 && !this.props.defaultItem);\n if (!hasSelected && filterText && virtual.skip === 0) {\n return focusedItemIndex ? focusedItemIndex(data, filterText, textField) :\n data.indexOf(getFocusedItem(data, filterText, textField));\n }\n else {\n return !hasSelected && virtual.skip === 0 ? 0 : undefined;\n }\n };\n DropDownList.prototype.focusElement = function (element) {\n var _this = this;\n this._skipFocusEvent = true;\n element.focus();\n window.setTimeout(function () { return _this._skipFocusEvent = false; }, 30);\n };\n DropDownList.prototype.triggerOnChange = function (item, state) {\n if (areSame(this.value, item, this.props.dataItemKey)) {\n return;\n }\n if (this.props.value === undefined) {\n state.data.value = item;\n }\n this._valueDuringOnChange = item;\n state.events.push({ type: 'onChange' });\n };\n DropDownList.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueDuringOnChange = undefined;\n };\n /**\n * @hidden\n */\n DropDownList.propTypes = __assign({ delay: PropTypes.number, ignoreCase: PropTypes.bool, iconClassName: PropTypes.string, defaultItem: PropTypes.any, valueRender: PropTypes.func, valueMap: PropTypes.func, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, leftRightKeysNavigation: PropTypes.bool, title: PropTypes.string }, DropDownBase.propTypes);\n /**\n * @hidden\n */\n DropDownList.defaultProps = __assign({ delay: 500, tabIndex: 0, ignoreCase: true }, DropDownBase.defaultProps, { required: false });\n return DropDownList;\n}(React.Component));\nexport default DropDownList;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, clear } from '../messages';\n/**\n * @hidden\n */\nvar ClearButton = /** @class */ (function (_super) {\n __extends(ClearButton, _super);\n function ClearButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onMouseDown = function (e) { return e.preventDefault(); };\n return _this;\n }\n ClearButton.prototype.render = function () {\n var title = provideLocalizationService(this).toLanguageString(clear, messages[clear]);\n return (React.createElement(\"span\", { className: \"k-icon k-clear-value k-i-close\", role: \"button\", onClick: this.props.onClick, onMouseDown: this.onMouseDown, tabIndex: -1, title: title, key: \"clearbutton\" }));\n };\n return ClearButton;\n}(React.Component));\nexport default ClearButton;\nregisterForLocalization(ClearButton);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport ClearButton from './ClearButton';\n/**\n * @hidden\n */\nvar SearchBar = /** @class */ (function (_super) {\n __extends(SearchBar, _super);\n function SearchBar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(SearchBar.prototype, \"input\", {\n /**\n * @hidden\n */\n get: function () {\n return this._input;\n },\n enumerable: true,\n configurable: true\n });\n SearchBar.prototype.componentDidUpdate = function (prevProps) {\n var prevValue = prevProps.value;\n var prevSuggestedText = prevProps.suggestedText;\n var _a = this.props, value = _a.value, suggestedText = _a.suggestedText, focused = _a.focused;\n var input = this.input;\n var valueChanged = prevValue !== value || suggestedText !== prevSuggestedText;\n var deleting = valueChanged && prevValue.startsWith(value) &&\n !(prevSuggestedText && suggestedText && prevSuggestedText.endsWith(suggestedText));\n if (focused && input && document.activeElement !== input) {\n input.focus();\n }\n if (suggestedText && valueChanged && !deleting && input) {\n input.setSelectionRange(value.length - suggestedText.length, value.length);\n }\n };\n SearchBar.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.expanded, expanded = _b === void 0 ? false : _b, disabled = _a.disabled, _c = _a.role, role = _c === void 0 ? 'listbox' : _c, render = _a.render;\n var searchbar = (React.createElement(\"span\", { className: \"k-searchbar\", key: \"searchbar\" },\n React.createElement(\"input\", { autoComplete: \"off\", id: this.props.id, type: \"text\", size: this.props.size, placeholder: this.props.placeholder, className: \"k-input\", tabIndex: this.props.tabIndex, accessKey: this.props.accessKey, role: role, name: this.props.name, value: this.props.value, onChange: this.props.onChange, ref: function (input) { return _this._input = input; }, onKeyDown: this.props.onKeyDown, onFocus: this.props.onFocus, onBlur: this.props.onBlur, \"aria-disabled\": disabled || undefined, disabled: disabled || undefined, readOnly: this.props.readOnly || undefined, \"aria-haspopup\": \"listbox\", \"aria-expanded\": expanded, \"aria-owns\": this.props.owns, \"aria-activedescendant\": expanded ? this.props.activedescendant : undefined, \"aria-describedby\": this.props.ariaDescribedBy, \"aria-labelledby\": this.props.ariaLabelledBy })));\n return [\n (render ? render.call(undefined, searchbar) : searchbar),\n !this.props.loading && this.props.clearButton && React.createElement(ClearButton, { onClick: this.props.clearButtonClick, key: \"clearbutton\" }),\n this.props.loading && React.createElement(\"span\", { className: \"k-icon k-i-loading\", key: \"loading\" })\n ];\n };\n return SearchBar;\n}(React.Component));\nexport default SearchBar;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport DropDownBase from '../common/DropDownBase';\nimport { guid, classNames, Keys } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { areSame, itemIndexStartsWith, getItemIndexByText, getItemValue, isPresent, suggestValue } from '../common/utils';\nimport SearchBar from '../common/SearchBar';\nimport ListContainer from '../common/ListContainer';\nimport List from '../common/List';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n/**\n * Represents the [KendoReact ComboBox component]({% slug overview_combobox %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * combobox = null;\n * render() {\n * return (\n *
    \n * this.combobox = component}\n * />\n * \n *
    \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar ComboBox = /** @class */ (function (_super) {\n __extends(ComboBox, _super);\n function ComboBox(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {};\n _this.base = new DropDownBase(_this);\n _this._inputId = guid();\n _this._suggested = '';\n _this.itemHeight = 0;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n /**\n * @hidden\n */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, virtual = _a.virtual, dataItemKey = _a.dataItemKey;\n var skip = virtual ? virtual.skip : 0;\n var item = data[index - skip];\n var newSelected = !areSame(item, _this.value, dataItemKey);\n _this.triggerOnChange(item, state);\n if (_this.state.text !== undefined) {\n state.data.text = undefined;\n }\n if (newSelected) {\n _this.base.triggerPageChangeCornerItems(item, state);\n }\n };\n _this.toggleBtnClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n _this.onScroll = function (event) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, groupField = _a.groupField;\n if (!groupField || !data.length) {\n return;\n }\n var _c = _this.base, vs = _c.vs, list = _c.list;\n var itemHeight = _this.itemHeight =\n _this.itemHeight || (vs.enabled ? vs.itemHeight : (list ? list.children[0].offsetHeight : 0));\n var target = event.target;\n var scrollTop = target.scrollTop - (vs.skip * itemHeight);\n var group = data[0][groupField];\n for (var i = 1; i < data.length; i++) {\n if (itemHeight * i > scrollTop) {\n break;\n }\n if (data[i] && data[i][groupField]) {\n group = data[i][groupField];\n }\n }\n if (group !== _this.state.group) {\n _this.setState({\n group: group\n });\n }\n };\n _this.handleItemClick = function (index, event) {\n _this.base.handleItemClick(index, event);\n _this._valueDuringOnChange = undefined;\n };\n _this.handleBlur = function (event) {\n if (_this.state.focused) {\n var state = _this.base.initState();\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n state.syntheticEvent = event;\n _this.applyValueOnRejectSuggestions(event.currentTarget.value, state);\n }\n };\n _this.onInputKeyDown = function (event) {\n var keyCode = event.keyCode;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!event.altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n _this.onNavigate(state, keyCode);\n _this.applyState(state);\n return;\n }\n var togglePopup = function () {\n event.preventDefault();\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n if (opened) {\n if (event.altKey && keyCode === Keys.up) {\n togglePopup();\n }\n else if (keyCode === Keys.enter) {\n event.preventDefault();\n _this.applyValueOnEnter(event.currentTarget.value, state);\n }\n else if (keyCode === Keys.esc) {\n _this.applyValueOnRejectSuggestions(event.currentTarget.value, state);\n }\n }\n else if (event.altKey && keyCode === Keys.down) {\n togglePopup();\n }\n };\n _this.inputOnChange = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var input = event.currentTarget;\n var value = input.value;\n if (_this.props.suggest) {\n var selectionAtEnd = input.selectionEnd === value.length;\n var prevText = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (!isPresent(prevText)) {\n prevText = getItemValue(_this.value, _this.props.textField) || '';\n }\n var deletedSuggestion = prevText && prevText === value;\n var deleting = prevText && prevText.length > value.length;\n if (deletedSuggestion || deleting || !selectionAtEnd) {\n _this._suggested = '';\n }\n else {\n _this.suggestValue(value);\n }\n }\n if (_this.props.filter === undefined) {\n state.data.text = value;\n }\n if (_this.state.focusedItem !== undefined) {\n state.data.focusedItem = undefined;\n }\n if (!opened) {\n _this.base.togglePopup(state);\n }\n _this.base.filterChanged(value, state);\n _this.applyState(state);\n };\n _this.clearButtonClick = function (event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n _this._suggested = '';\n _this.base.filterChanged('', state);\n if (_this.props.filter === undefined && _this.state.text !== undefined) {\n state.data.text = undefined;\n }\n _this.triggerOnChange(null, state);\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n if (opened) {\n _this.base.togglePopup(state);\n }\n _this.applyState(state);\n };\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(ComboBox.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ComboBox.prototype, \"value\", {\n /**\n * The value of the ComboBox.\n */\n get: function () {\n if (this._valueDuringOnChange !== undefined) {\n return this._valueDuringOnChange;\n }\n else if (this.props.value !== undefined) {\n return this.props.value;\n }\n else if (this.state.value !== undefined) {\n return this.state.value;\n }\n else if (this.props.defaultValue !== undefined) {\n return this.props.defaultValue;\n }\n return undefined;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ComboBox.prototype, \"index\", {\n /**\n * The index of the selected item.\n */\n get: function () {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey;\n var value = this.value;\n // TO DO: deprecate it!\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ComboBox.prototype, \"name\", {\n /**\n * Gets the `name` property of the ComboBox.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ComboBox.prototype, \"validity\", {\n /**\n * Represents the validity state into which the component is set.\n */\n get: function () {\n // remove the undefined check when this is fixed:\n // https://github.com/telerik/kendo-react-private/issues/252\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required\n || (this.value !== null && this.value !== '' && this.value !== undefined));\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ComboBox.prototype, \"validityStyles\", {\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : ComboBox.defaultProps.validityStyles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ComboBox.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : ComboBox.defaultProps.required;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n ComboBox.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey, virtual = _a.virtual;\n var prevTotal = prevProps.virtual ? prevProps.virtual.total : 0;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && opened;\n var selectedItem = this.value;\n this._valueOnDidUpdate = selectedItem;\n if (virtual && virtual.total !== prevTotal) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n }\n else {\n var prevSelectedItem = prevProps.value !== undefined ? prevProps.value : prevState.value;\n var selectedItemIndex = data.findIndex(function (i) { return areSame(i, selectedItem, dataItemKey); });\n var selectedItemChanged = !areSame(prevSelectedItem, selectedItem, dataItemKey);\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, selectedItemIndex);\n }\n else if (opening && !virtual) {\n this.base.scrollToItem(selectedItemIndex);\n }\n else if (opened && prevOpened && selectedItem && selectedItemChanged) {\n this.base.scrollToItem(selectedItemIndex);\n }\n }\n if (opening && this._input) {\n this._input.focus();\n }\n this.setValidity();\n };\n /**\n * @hidden\n */\n ComboBox.prototype.componentDidMount = function () {\n this.base.didMount();\n this.setValidity();\n };\n /**\n * @hidden\n */\n ComboBox.prototype.render = function () {\n var _this = this;\n var _a = this.props, dir = _a.dir, disabled = _a.disabled, _b = _a.clearButton, clearButton = _b === void 0 ? ComboBox.defaultProps.clearButton : _b, label = _a.label, textField = _a.textField, className = _a.className, style = _a.style, loading = _a.loading, iconClassName = _a.iconClassName, virtual = _a.virtual;\n var focused = this.state.focused;\n var isValid = !this.validityStyles || this.validity.valid;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var selectedItemText = getItemValue(this.value, textField);\n var inputText = isPresent(text) ? text : selectedItemText;\n var renderClearButton = clearButton && (!!(inputText) || isPresent(this.value));\n var base = this.base;\n var vs = base.vs;\n var id = this.props.id || this._inputId;\n vs.enabled = virtual !== undefined;\n if (virtual !== undefined) {\n vs.skip = virtual.skip;\n vs.total = virtual.total;\n vs.pageSize = virtual.pageSize;\n }\n var combobox = (React.createElement(\"span\", { className: classNames('k-widget k-combobox', {\n 'k-combobox-clearable': clearButton,\n 'k-state-invalid': !isValid\n }, className), ref: function (element) { return _this._element = element; }, style: !label\n ? style\n : __assign({}, style, { width: undefined }), dir: dir },\n React.createElement(\"span\", { ref: function (wrapper) { return base.wrapper = wrapper; }, className: classNames('k-dropdown-wrap', {\n 'k-state-disabled': disabled,\n 'k-state-focused': focused && !disabled\n }) },\n this.renderSearchBar(renderClearButton, inputText || '', id),\n React.createElement(\"span\", { className: \"k-select\", onClick: this.toggleBtnClick, onMouseDown: function (e) { return e.preventDefault(); } },\n React.createElement(\"span\", { className: classNames('k-icon', iconClassName, {\n 'k-i-arrow-s': !loading && !iconClassName,\n 'k-i-loading': loading && !iconClassName\n }) }))),\n this.renderListContainer()));\n return label\n ? (React.createElement(FloatingLabel, { label: label, editorId: id, editorValue: inputText, editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: combobox }))\n : combobox;\n };\n /**\n * @hidden\n */\n ComboBox.prototype.onNavigate = function (state, keyCode) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c;\n var text = this.props.filter ? this.props.filter : this.state.text;\n var focusedIndex = this.getFocusedIndex();\n var vs = this.base.vs;\n var value = this.value;\n this._suggested = '';\n if (focusedIndex !== -1 && !isPresent(value)) {\n this.handleItemSelect(focusedIndex, state);\n }\n else if (text === '') {\n this.handleItemSelect(0, state);\n }\n else {\n var currentIndex = virtual.skip + focusedIndex;\n var newIndex = this.base.navigation.navigate({\n keyCode: keyCode,\n current: currentIndex,\n max: (vs.enabled ? vs.total : data.length) - 1,\n min: 0\n });\n if (newIndex !== undefined) {\n this.handleItemSelect(newIndex, state);\n }\n }\n };\n ComboBox.prototype.applyValueOnEnter = function (value, state) {\n var _a;\n var _b = this.props, _c = _b.data, data = _c === void 0 ? [] : _c, textField = _b.textField, allowCustom = _b.allowCustom;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var currentValueText = getItemValue(this.value, textField);\n var valueIndex = currentValueText === value ?\n this.index : getItemIndexByText(data, value, textField);\n var itemSelected = valueIndex !== -1;\n var newSelected = undefined;\n this._suggested = '';\n if (itemSelected) { // typed text match item from list\n newSelected = data[valueIndex];\n }\n else {\n if (allowCustom) { // any custom text not in list\n newSelected = textField !== undefined ? (_a = {}, _a[textField] = value, _a) : value;\n }\n else {\n return this.selectFocusedItem(value, state);\n }\n }\n this.triggerOnChange(newSelected, state);\n if (opened) {\n this.base.togglePopup(state);\n }\n if (this.props.filter === undefined && this.state.text !== undefined) {\n state.data.text = undefined;\n }\n this.applyState(state);\n };\n ComboBox.prototype.applyValueOnRejectSuggestions = function (text, state) {\n var _a;\n var _b = this.props, _c = _b.data, data = _c === void 0 ? [] : _c, textField = _b.textField, allowCustom = _b.allowCustom;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var valueItemText = getItemValue(this.value, textField);\n this._suggested = '';\n if (text === valueItemText || (text === '' && !isPresent(valueItemText))) {\n if (opened) {\n this.base.togglePopup(state);\n }\n return this.applyState(state);\n }\n var valueIndex = getItemIndexByText(data, text, textField, true);\n var itemSelected = valueIndex !== -1;\n var newSelected = null;\n if (itemSelected) {\n newSelected = data[valueIndex];\n }\n else if (allowCustom) {\n newSelected = text ? (textField ? (_a = {}, _a[textField] = text, _a) : text) : null;\n }\n this.triggerOnChange(newSelected, state);\n if (this.state.text !== undefined) {\n state.data.text = undefined;\n this.base.filterChanged('', state);\n }\n if (opened) {\n this.base.togglePopup(state);\n }\n this.applyState(state);\n };\n ComboBox.prototype.selectFocusedItem = function (text, state) {\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, _d = _a.focusedItemIndex, focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d;\n var skip = virtual.skip;\n var focusedIndex = (text === '' && skip === 0) ? 0 :\n focusedItemIndex(data, text, textField);\n if (focusedIndex !== -1) {\n this.handleItemSelect(focusedIndex + skip, state);\n }\n else {\n this.triggerOnChange(null, state);\n if (this.state.text !== undefined) {\n state.data.text = undefined;\n }\n }\n if (opened) {\n this.base.togglePopup(state);\n }\n return this.applyState(state);\n };\n ComboBox.prototype.renderListContainer = function () {\n var base = this.base;\n var _a = this.props, dir = _a.dir, header = _a.header, footer = _a.footer, _b = _a.data, data = _b === void 0 ? [] : _b, groupField = _a.groupField;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var popupSettings = base.getPopupSettings();\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var group = this.state.group;\n if (group === undefined && groupField !== undefined) {\n group = getItemValue(data[0], groupField);\n }\n return (React.createElement(ListContainer, { width: popupWidth, popupSettings: {\n animate: popupSettings.animate,\n anchor: this.element,\n show: opened,\n popupClass: popupSettings.popupClass,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n }, dir: dir !== undefined ? dir : this.base.dirCalculated, itemsCount: [data.length] },\n header,\n group && React.createElement(\"div\", { className: \"k-group-header\" }, group),\n base.renderScrollWrapper([this.renderList(), base.renderScrollElement()], this.onScroll),\n footer));\n };\n ComboBox.prototype.renderList = function () {\n var _this = this;\n var base = this.base;\n var _a = this.props, textField = _a.textField, dataItemKey = _a.dataItemKey, listNoDataRender = _a.listNoDataRender, itemRender = _a.itemRender, _b = _a.data, data = _b === void 0 ? [] : _b, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c;\n var popupSettings = base.getPopupSettings();\n var vs = base.vs;\n var skip = virtual.skip;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var translate = \"translateY(\" + vs.translate + \"px)\";\n var focusedIndex = opened ? this.getFocusedIndex() : undefined;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var selectedItemText = getItemValue(this.value, textField);\n var value = isPresent(text) && text !== selectedItemText ? null : this.value;\n var ListComponent = this.props.list || List;\n return (React.createElement(ListComponent, { id: base.listBoxId, show: opened, data: data, focusedIndex: focusedIndex, value: value, textField: textField, valueField: dataItemKey, groupField: this.props.groupField, optionsGuid: base.guid, listRef: function (list) { vs.list = _this.base.list = list; _this.itemHeight = 0; }, wrapperStyle: !vs.enabled ?\n { maxHeight: popupSettings.height } : { float: 'left', width: '100%' }, wrapperCssClass: !vs.enabled ? 'k-list-scroller' : undefined, listStyle: vs.enabled ?\n { transform: translate } : undefined, key: \"listkey\", skip: skip, onClick: this.handleItemClick, itemRender: itemRender, noDataRender: listNoDataRender, onMouseDown: function (e) { return e.preventDefault(); }, onScroll: this.onScroll }));\n };\n ComboBox.prototype.renderSearchBar = function (clearButton, text, id) {\n var _this = this;\n var _a = this.props, placeholder = _a.placeholder, tabIndex = _a.tabIndex, disabled = _a.disabled, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var value = this.value;\n var selectedIndex = Math.max(0, data.findIndex(function (i) { return areSame(i, value, dataItemKey); }));\n if (this._suggested && !areSame(this._valueOnDidUpdate, value, dataItemKey)) {\n this._suggested = '';\n }\n return (React.createElement(SearchBar, { id: id, placeholder: placeholder, tabIndex: tabIndex || undefined, accessKey: this.props.accessKey, value: text + this._suggested, suggestedText: this._suggested, ref: function (el) { return _this._input = el && el.input; }, onKeyDown: this.onInputKeyDown, onChange: this.inputOnChange, onFocus: this.base.handleFocus, onBlur: this.handleBlur, disabled: disabled, expanded: opened, owns: this.base.listBoxId, activedescendant: this.base.guid + '-' + (selectedIndex + virtual.skip), role: \"combobox\", clearButton: clearButton, clearButtonClick: this.clearButtonClick, ariaLabelledBy: this.props.ariaLabelledBy, ariaDescribedBy: this.props.ariaDescribedBy, render: this.props.valueRender }));\n };\n ComboBox.prototype.triggerOnChange = function (item, state) {\n var value = this.value;\n if ((!isPresent(value) && !isPresent(item)) || areSame(value, item, this.props.dataItemKey)) {\n return;\n }\n if (this.props.value === undefined) {\n state.data.value = item;\n }\n this._valueDuringOnChange = item;\n state.events.push({ type: 'onChange' });\n };\n ComboBox.prototype.getFocusedIndex = function () {\n var value = this.value;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, dataItemKey = _a.dataItemKey, _c = _a.virtual, virtual = _c === void 0 ? { skip: 0 } : _c, _d = _a.focusedItemIndex, focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d;\n var text = this.props.filter ? this.props.filter : this.state.text;\n if (isPresent(value) && text === undefined) {\n return data.findIndex(function (i) { return areSame(i, value, dataItemKey); });\n }\n else if (text) {\n return focusedItemIndex(data, text, textField);\n }\n else {\n return virtual.skip === 0 ? 0 : -1;\n }\n };\n ComboBox.prototype.suggestValue = function (value) {\n var _a = this.props, data = _a.data, textField = _a.textField;\n this._suggested = suggestValue(value, data, textField);\n };\n ComboBox.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueDuringOnChange = undefined;\n };\n /**\n * @hidden\n */\n ComboBox.propTypes = __assign({}, DropDownBase.propTypes, { dataItemKey: PropTypes.string, groupField: PropTypes.string, suggest: PropTypes.bool, placeholder: PropTypes.string, allowCustom: PropTypes.bool, clearButton: PropTypes.bool, iconClassName: PropTypes.string, validationMessage: PropTypes.string, required: PropTypes.bool, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string, list: PropTypes.any, valueRender: PropTypes.func });\n /**\n * @hidden\n */\n ComboBox.defaultProps = __assign({}, DropDownBase.defaultProps, { allowCustom: false, clearButton: true, required: false });\n return ComboBox;\n}(React.Component));\nexport default ComboBox;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport SearchBar from './../common/SearchBar';\nimport ListContainer from './../common/ListContainer';\nimport List from './../common/List';\nimport DropDownBase from '../common/DropDownBase';\nimport { itemIndexStartsWith, getItemValue, areSame, getFocusedItem } from '../common/utils';\nimport { guid, Keys, classNames } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n/**\n * Represents the [KendoReact AutoComplete component]({% slug overview_autocomplete %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * autocomplete = null;\n * render() {\n * return (\n *
    \n * this.autocomplete = component}\n * />\n * \n *
    \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar AutoComplete = /** @class */ (function (_super) {\n __extends(AutoComplete, _super);\n function AutoComplete(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {};\n _this.base = new DropDownBase(_this);\n _this._inputId = guid();\n _this._suggested = '';\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n /**\n * @hidden\n */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props.data, data = _a === void 0 ? [] : _a;\n var newText = getItemValue(data[index], _this.props.textField);\n _this.triggerOnChange(newText, state);\n };\n /**\n * @hidden\n */\n _this.itemFocus = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField;\n var focusedItem = data[index];\n if (!areSame(_this.state.focusedItem, focusedItem, textField)) {\n state.data.focusedItem = focusedItem;\n }\n };\n /**\n * @hidden\n */\n _this.togglePopup = function (state) {\n _this.base.togglePopup(state);\n };\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n _this.handleItemClick = function (index, event) {\n _this.base.handleItemClick(index, event);\n _this._valueDuringOnChange = undefined;\n };\n _this.onChangeHandler = function (event) {\n var base = _this.base;\n var state = base.initState();\n var input = event.currentTarget;\n var value = input.value;\n var selectionAtEnd = input.selectionEnd === value.length;\n state.syntheticEvent = event;\n var prevSuggestion = _this._suggested;\n var prevValue = _this.value;\n var prevUserInput = prevValue &&\n prevValue.substring(0, prevValue.length - prevSuggestion.length);\n var deletedSuggestion = prevUserInput && prevUserInput === value;\n var deleting = prevUserInput && prevUserInput.length > value.length;\n var suggest = _this.props.suggest;\n var opened = _this.props.opened !== undefined ?\n _this.props.opened : _this.state.opened;\n if (suggest !== undefined && suggest !== false) {\n if (deletedSuggestion || deleting || !selectionAtEnd) {\n _this._suggested = '';\n }\n else {\n _this.suggestValue(value);\n }\n var newValue = value + _this._suggested;\n var suggestion = { userInput: value, value: _this._suggested };\n _this.triggerOnChange(newValue, state, { suggestion: suggestion });\n }\n else {\n _this._suggested = '';\n _this.triggerOnChange(value, state);\n }\n if ((!opened && value) || (opened && !value)) {\n _this.togglePopup(state);\n }\n state.data.focusedItem = undefined;\n _this.applyState(state);\n };\n _this.clearButtonClick = function (event) {\n var base = _this.base;\n var state = base.initState();\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n state.syntheticEvent = event;\n var newValue = '';\n _this._suggested = '';\n _this.triggerOnChange(newValue, state);\n if (_this.state.focusedItem !== undefined) {\n state.data.focusedItem = undefined;\n }\n if (opened) {\n _this.togglePopup(state);\n }\n _this.applyState(state);\n };\n _this.onInputKeyDown = function (event) {\n var keyCode = event.keyCode;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n var preventDefault = function () {\n if (opened) {\n event.preventDefault();\n }\n };\n if (keyCode === Keys.enter || keyCode === Keys.esc) {\n preventDefault();\n _this.applyInputValue(event.currentTarget.value, state, event.keyCode);\n }\n else if (keyCode === Keys.up || keyCode === Keys.down) {\n preventDefault();\n _this.onNavigate(state, keyCode);\n }\n };\n _this.handleBlur = function (event) {\n if (_this.state.focused) {\n var state = _this.base.initState();\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n state.syntheticEvent = event;\n _this.applyInputValue(event.currentTarget.value, state);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(AutoComplete.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AutoComplete.prototype, \"value\", {\n /**\n * The value of the AutoComplete.\n */\n get: function () {\n if (this._valueDuringOnChange !== undefined) {\n return this._valueDuringOnChange;\n }\n else if (this.props.value !== undefined) {\n return this.props.value;\n }\n else if (this.state.value !== undefined) {\n return this.state.value;\n }\n else if (this.props.defaultValue !== undefined) {\n return this.props.defaultValue;\n }\n return '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AutoComplete.prototype, \"name\", {\n /**\n * Gets the `name` property of the AutoComplete.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AutoComplete.prototype, \"validity\", {\n /**\n * Represents the validity state into which the AutoComplete is set.\n */\n get: function () {\n // The AutoComplete component is in a invalid state\n // only if it's required and the value is null!\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== '');\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AutoComplete.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : AutoComplete.defaultProps.validityStyles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AutoComplete.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : AutoComplete.defaultProps.required;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n AutoComplete.prototype.componentDidUpdate = function (prevProps, prevState) {\n var _a = this.props.data, data = _a === void 0 ? [] : _a;\n var _b = prevProps.data, prevData = _b === void 0 ? [] : _b;\n var focusedIndex = this.focusedIndex();\n var focusedItem = data[focusedIndex];\n var dataChanged = prevData !== data;\n var focusedItemChanged = focusedItem !== undefined && prevState.focusedItem !== focusedItem;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && opened;\n if ((opened && (focusedItemChanged || dataChanged)) || opening) {\n this.base.scrollToItem(focusedIndex);\n }\n this.setValidity();\n };\n /**\n * @hidden\n */\n AutoComplete.prototype.componentDidMount = function () {\n this.base.didMount();\n this.setValidity();\n };\n /**\n * @hidden\n */\n AutoComplete.prototype.render = function () {\n var _this = this;\n var _a = this.props, dir = _a.dir, disabled = _a.disabled, label = _a.label, className = _a.className, style = _a.style, loading = _a.loading, suggest = _a.suggest;\n var isValid = !this.validityStyles || this.validity.valid;\n var focused = this.state.focused;\n var base = this.base;\n var value = this.value;\n var renderClearButton = this.props.clearButton !== false && !loading && !!value;\n var id = this.props.id || this._inputId;\n if (typeof suggest === 'string') {\n this._suggested = suggest;\n }\n var autoComplete = (React.createElement(\"span\", { className: classNames('k-widget k-autocomplete', className, {\n 'k-state-disabled': disabled,\n 'k-state-focused': focused && !disabled,\n 'k-state-invalid': !isValid\n }), ref: function (element) {\n _this._element = element;\n base.wrapper = element;\n }, style: !label\n ? style\n : __assign({}, style, { width: undefined }), dir: dir },\n this.renderSearchBar(renderClearButton, value || '', id),\n loading && React.createElement(\"span\", { className: \"k-icon k-i-loading\" }),\n this.renderListContainer()));\n return label\n ? (React.createElement(FloatingLabel, { label: label, editorId: id, editorValue: value, editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: autoComplete }))\n : autoComplete;\n };\n /**\n * @hidden\n */\n AutoComplete.prototype.onNavigate = function (state, keyCode) {\n var _this = this;\n var typedText = this.value;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, focusedItemIndex = _a.focusedItemIndex;\n var focusedIndex = this.state.focusedItem !== undefined ?\n data.findIndex(function (i) { return areSame(i, _this.state.focusedItem, textField); }) :\n (focusedItemIndex ? focusedItemIndex(data, typedText, textField) :\n data.indexOf(getFocusedItem(data, typedText, textField)));\n var newFocused = this.base.navigation.navigate({\n keyCode: keyCode,\n current: focusedIndex,\n max: data.length - 1,\n min: 0\n });\n if (newFocused !== undefined) {\n this.itemFocus(newFocused, state);\n }\n this.applyState(state);\n };\n /**\n * @hidden\n */\n AutoComplete.prototype.applyInputValue = function (value, state, eventKey) {\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField;\n this._suggested = '';\n if (opened && eventKey === Keys.enter) {\n var newValue = getItemValue(data[this.focusedIndex(value)], textField);\n this.triggerOnChange(newValue, state);\n }\n if (opened) {\n this.togglePopup(state);\n }\n this.applyState(state);\n };\n AutoComplete.prototype.renderSearchBar = function (clearButton, value, id) {\n var _this = this;\n var base = this.base;\n var _a = this.props, placeholder = _a.placeholder, tabIndex = _a.tabIndex, disabled = _a.disabled, readonly = _a.readonly;\n var focused = this.state.focused;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n return (React.createElement(SearchBar, { id: id, placeholder: placeholder, tabIndex: tabIndex || undefined, accessKey: this.props.accessKey, value: value, suggestedText: this._suggested, focused: focused, name: this.props.name, ref: function (searchbar) { return _this._input = searchbar && searchbar.input; }, onKeyDown: this.onInputKeyDown, onChange: this.onChangeHandler, onFocus: base.handleFocus, onBlur: this.handleBlur, disabled: disabled, readOnly: readonly, expanded: opened, owns: base.listBoxId, activedescendant: 'option-' + base.guid + '-' + this.focusedIndex(), role: \"combobox\", clearButton: clearButton, clearButtonClick: this.clearButtonClick, ariaLabelledBy: this.props.ariaLabelledBy, ariaDescribedBy: this.props.ariaDescribedBy, render: this.props.valueRender }));\n };\n AutoComplete.prototype.renderListContainer = function () {\n var base = this.base;\n var _a = this.props, dir = _a.dir, header = _a.header, footer = _a.footer, _b = _a.data, data = _b === void 0 ? [] : _b;\n var popupSettings = base.getPopupSettings();\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n return (React.createElement(ListContainer, { width: popupWidth, popupSettings: {\n animate: popupSettings.animate,\n anchor: this.element,\n show: opened,\n popupClass: popupSettings.popupClass,\n className: classNames('k-list-container k-reset', popupSettings.className),\n appendTo: popupSettings.appendTo\n }, dir: dir !== undefined ? dir : this.base.dirCalculated, itemsCount: [data.length] },\n header,\n this.renderList(),\n footer));\n };\n AutoComplete.prototype.renderList = function () {\n var base = this.base;\n var popupSettings = base.getPopupSettings();\n var _a = this.props, textField = _a.textField, _b = _a.data, data = _b === void 0 ? [] : _b, listNoDataRender = _a.listNoDataRender, itemRender = _a.itemRender;\n var value = this.value;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n return (React.createElement(List, { id: base.listBoxId, show: opened, data: data.slice(), focusedIndex: this.focusedIndex(), value: value, textField: textField, valueField: textField, highlightSelected: false, optionsGuid: base.guid, listRef: function (list) { return base.list = list; }, wrapperStyle: { maxHeight: popupSettings.height }, wrapperCssClass: \"k-list-scroller\", onClick: this.handleItemClick, itemRender: itemRender, noDataRender: listNoDataRender, onMouseDown: function (e) { return e.preventDefault(); } }));\n };\n AutoComplete.prototype.triggerOnChange = function (newValue, state, eventArgs) {\n if (this.value === newValue && !eventArgs) {\n return;\n }\n state.data.value = newValue;\n this._valueDuringOnChange = newValue;\n state.events.push(__assign({ type: 'onChange' }, (eventArgs || {})));\n };\n AutoComplete.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueDuringOnChange = undefined;\n };\n AutoComplete.prototype.suggestValue = function (value) {\n this._suggested = '';\n if (value) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField;\n var suggestedItem = data[itemIndexStartsWith(data, value, textField)];\n if (suggestedItem) {\n var suggestedText = getItemValue(suggestedItem, textField);\n if (value.toLowerCase() !== suggestedText.toLowerCase()) {\n this._suggested = suggestedText.substring(value.length);\n }\n }\n }\n };\n AutoComplete.prototype.focusedIndex = function (value) {\n var _this = this;\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, focusedItemIndex = _a.focusedItemIndex;\n var inputValue = value !== undefined ? value : this.value;\n return this.state.focusedItem !== undefined ?\n data.findIndex(function (i) { return areSame(i, _this.state.focusedItem, textField); }) :\n (focusedItemIndex ? focusedItemIndex(data, inputValue, textField) :\n Math.max(0, data.indexOf(getFocusedItem(data, inputValue, textField))));\n };\n /**\n * @hidden\n */\n AutoComplete.propTypes = __assign({}, DropDownBase.basicPropTypes, { suggest: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]), placeholder: PropTypes.string, value: PropTypes.string, defaultValue: PropTypes.string, validationMessage: PropTypes.string, required: PropTypes.bool, readonly: PropTypes.bool, clearButton: PropTypes.bool, valueRender: PropTypes.func, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string });\n /**\n * @hidden\n */\n AutoComplete.defaultProps = __assign({}, DropDownBase.defaultProps);\n return AutoComplete;\n}(React.Component));\nexport default AutoComplete;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nvar tagClassName = 'k-button';\nvar focusedTagClassName = tagClassName + ' k-state-focused';\nvar preventDefault = function (event) { return event.preventDefault(); };\nvar stopPropagation = function (event) { return event.stopPropagation(); };\n/**\n * @hidden\n */\nvar TagList = /** @class */ (function (_super) {\n __extends(TagList, _super);\n function TagList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TagList.prototype.render = function () {\n var _this = this;\n var _a = this.props, data = _a.data, guid = _a.guid;\n var TagComponent = this.props.tag;\n return (React.createElement(\"ul\", { className: \"k-reset\", role: \"listbox\", id: 'tagslist-' + guid }, data.map(function (tagData, index) {\n var tag = TagComponent ? (React.createElement(TagComponent, { tagData: tagData, guid: guid, focusedTag: _this.props.focused, onTagDelete: _this.props.onTagDelete })) : (React.createElement(\"li\", { className: tagData === _this.props.focused ? focusedTagClassName : tagClassName, key: tagData.text + index, id: \"tag-\" + guid + \"-\" + tagData.text.replace(/\\s+/g, '-'), onMouseDown: preventDefault, onClick: stopPropagation, \"aria-selected\": true, role: \"option\", \"aria-setsize\": data.length },\n React.createElement(\"span\", null, tagData.text),\n React.createElement(\"span\", { \"aria-label\": \"delete\", className: \"k-select\", onClick: function (e) { return _this.props.onTagDelete.call(undefined, tagData.data, e); } },\n React.createElement(\"span\", { className: \"k-icon k-i-close\" }))));\n return _this.props.tagRender ?\n _this.props.tagRender(tagData, tag) : tag;\n })));\n };\n return TagList;\n}(React.Component));\nexport default TagList;\n","/**\n * @hidden\n */\nexport var ActiveDescendant;\n(function (ActiveDescendant) {\n ActiveDescendant[ActiveDescendant[\"PopupList\"] = 0] = \"PopupList\";\n ActiveDescendant[ActiveDescendant[\"TagsList\"] = 1] = \"TagsList\";\n})(ActiveDescendant || (ActiveDescendant = {}));\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, Keys, guid } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport ListContainer from '../common/ListContainer';\nimport List from '../common/List';\nimport TagList from './TagList';\nimport SearchBar from '../common/SearchBar';\nimport DropDownBase from '../common/DropDownBase';\nimport { ActiveDescendant } from './../common/settings';\nimport { itemIndexStartsWith, getItemValue, areSame, removeDataItems, isPresent, preventDefaultNonInputs, matchTags } from '../common/utils';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\nvar preventDefault = function (event) { return event.preventDefault(); };\nvar isCustom = function (type) { return type === FocusedItemType.CustomItem; };\nvar FocusedItemType;\n(function (FocusedItemType) {\n FocusedItemType[FocusedItemType[\"None\"] = 0] = \"None\";\n FocusedItemType[FocusedItemType[\"ListItem\"] = 1] = \"ListItem\";\n FocusedItemType[FocusedItemType[\"CustomItem\"] = 2] = \"CustomItem\";\n})(FocusedItemType || (FocusedItemType = {}));\n/**\n * Represents the [KendoReact MultiSelect component]({% slug overview_multiselect %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * multiselect = null;\n * render() {\n * return (\n *
    \n * this.multiselect = component}\n * />\n * \n *
    \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar MultiSelect = /** @class */ (function (_super) {\n __extends(MultiSelect, _super);\n function MultiSelect(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {\n activedescendant: ActiveDescendant.PopupList\n };\n _this._valueItemsDuringOnChange = null;\n _this._inputId = guid();\n _this.base = new DropDownBase(_this);\n _this._tags = [];\n _this._skipFocusEvent = false;\n _this.scrollToFocused = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n /**\n * @hidden\n */\n _this.handleItemSelect = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey, virtual = _a.virtual;\n var skip = virtual ? virtual.skip : 0;\n var dataItem = data[index - skip];\n var indexInValue = _this.value.findIndex(function (i) { return areSame(i, dataItem, dataItemKey); });\n var newItems = [];\n if (indexInValue !== -1) { // item is already selected\n newItems = _this.value;\n newItems.splice(indexInValue, 1);\n }\n else {\n newItems = _this.value.concat([dataItem]);\n }\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (text) {\n if (_this.state.text) {\n state.data.text = '';\n }\n _this.base.filterChanged('', state);\n }\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n _this.triggerOnChange(newItems, state);\n _this.base.triggerPageChangeCornerItems(dataItem, state);\n };\n /**\n * @hidden\n */\n _this.onTagDelete = function (itemsToRemove, event) {\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (opened) {\n _this.base.togglePopup(state);\n }\n if (!_this.state.focused) {\n state.data.focused = true;\n _this.focus();\n }\n var selected = _this.value;\n removeDataItems(selected, itemsToRemove, _this.props.dataItemKey);\n _this.triggerOnChange(selected, state);\n _this.applyState(state);\n };\n /**\n * @hidden\n */\n _this.itemFocus = function (index, state) {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, allowCustom = _a.allowCustom, virtual = _a.virtual;\n var skip = virtual ? virtual.skip : 0;\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var focusedIndex = _this.getFocusedState().focusedIndex;\n var customItem = allowCustom && text;\n var nextFocusedItem = data[index - skip];\n if (nextFocusedItem && focusedIndex !== index) {\n if (_this.state.focusedIndex !== index) {\n state.data.focusedIndex = index;\n state.data.activedescendant = ActiveDescendant.PopupList;\n }\n }\n else if (customItem && index === -1) {\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n }\n _this.base.triggerPageChangeCornerItems(nextFocusedItem, state);\n };\n _this.searchbarRef = function (searchbar) {\n var input = _this._input = searchbar && searchbar.input;\n if (input && _this.state.focused) {\n window.setTimeout(function () { return input.focus(); }, 0);\n }\n };\n _this.onChangeHandler = function (event) {\n var state = _this.base.initState();\n var value = event.currentTarget.value;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n state.syntheticEvent = event;\n if (_this.props.filter === undefined) {\n state.data.text = value;\n }\n state.data.focusedIndex = undefined;\n if (!opened) {\n _this.base.togglePopup(state);\n }\n _this.base.filterChanged(value, state);\n _this.applyState(state);\n };\n _this.clearButtonClick = function (event) {\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n event.stopPropagation();\n if (_this.value.length > 0) {\n _this.triggerOnChange([], state);\n }\n if (_this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n if (opened) {\n _this.base.togglePopup(state);\n }\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n if (isPresent(text) && text !== '') {\n _this.base.filterChanged('', state);\n }\n if (_this.state.text) {\n state.data.text = '';\n }\n _this.applyState(state);\n };\n _this.onInputKeyDown = function (event) {\n var keyCode = event.keyCode;\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var focusedItem = _this.getFocusedState().focusedItem;\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!text && _this.value.length > 0 &&\n (keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end ||\n keyCode === Keys.delete || keyCode === Keys.backspace)) {\n return _this.onTagsNavigate(event, state);\n }\n var togglePopup = function () {\n event.preventDefault();\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n if (opened) {\n if (event.altKey && keyCode === Keys.up) {\n togglePopup();\n }\n else if (keyCode === Keys.up || keyCode === Keys.down) {\n event.preventDefault();\n _this.onNavigate(state, keyCode);\n }\n else if (keyCode === Keys.enter) {\n event.preventDefault();\n if (_this.props.allowCustom && text && focusedItem === null) {\n _this.customItemSelect(event);\n }\n else {\n _this.selectFocusedItem(event);\n }\n }\n else if (keyCode === Keys.esc) {\n togglePopup();\n }\n }\n else if (event.altKey && keyCode === Keys.down) {\n togglePopup();\n }\n };\n _this.renderListContainer = function () {\n var base = _this.base;\n var _a = _this.props, header = _a.header, footer = _a.footer, allowCustom = _a.allowCustom, dir = _a.dir, _b = _a.data, data = _b === void 0 ? [] : _b;\n var popupSettings = _this.base.getPopupSettings();\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var text = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var virtual = _this.props.virtual !== undefined;\n var popupWidth = popupSettings.width !== undefined ? popupSettings.width : base.popupWidth;\n var listContainerProps = {\n dir: dir !== undefined ? dir : base.dirCalculated,\n width: popupWidth,\n popupSettings: {\n popupClass: popupSettings.popupClass,\n className: classNames('k-list-container k-reset', popupSettings.className),\n animate: popupSettings.animate,\n anchor: _this.element,\n show: opened,\n onOpen: _this.onPopupOpened,\n onClose: _this.onPopupClosed,\n appendTo: popupSettings.appendTo\n },\n itemsCount: [data.length, _this.value.length]\n };\n var focusedType = _this.getFocusedState().focusedType;\n var customItem = allowCustom && text && (React.createElement(\"div\", { className: \"k-list\", key: \"customitem\", onClick: _this.customItemSelect, onMouseDown: preventDefault },\n React.createElement(\"div\", { className: classNames('k-item k-custom-item', { 'k-state-focused': isCustom(focusedType) }) },\n text,\n React.createElement(\"span\", { className: \"k-icon k-i-plus\", style: { float: 'right' } }))));\n return (React.createElement(ListContainer, __assign({}, listContainerProps),\n virtual && header,\n _this.base.renderScrollWrapper(React.createElement(React.Fragment, null,\n !virtual && header,\n customItem,\n _this.renderList(),\n !virtual && footer,\n _this.base.renderScrollElement())),\n virtual && footer));\n };\n _this.renderList = function () {\n var _a = _this.props, _b = _a.data, data = _b === void 0 ? [] : _b, textField = _a.textField, listNoDataRender = _a.listNoDataRender, itemRender = _a.itemRender, dataItemKey = _a.dataItemKey, virtual = _a.virtual;\n var vs = _this.base.vs;\n var skip = virtual ? virtual.skip : 0;\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var focusedIndex = _this.getFocusedState().focusedIndex;\n var popupSettings = _this.base.getPopupSettings();\n var translate = \"translateY(\" + vs.translate + \"px)\";\n return (React.createElement(List, { id: _this.base.listBoxId, show: opened, data: data.slice(), focusedIndex: focusedIndex - skip, value: _this.value, textField: textField, valueField: dataItemKey, optionsGuid: _this.base.guid, listRef: function (list) { vs.list = _this.base.list = list; }, wrapperStyle: vs.enabled ?\n { float: 'left', width: '100%' } : { maxHeight: popupSettings.height }, wrapperCssClass: vs.enabled ? undefined : 'k-list-scroller', listStyle: vs.enabled ? { transform: translate } : undefined, key: \"listKey\", skip: skip, onClick: _this.handleItemClick, itemRender: itemRender, noDataRender: listNoDataRender, onMouseDown: preventDefault, onBlur: _this.handleBlur }));\n };\n _this.customItemSelect = function (event) {\n var _a;\n var itemText = _this.props.filter !== undefined ? _this.props.filter : _this.state.text;\n var textField = _this.props.textField;\n if (!itemText) {\n return;\n }\n var state = _this.base.initState();\n state.syntheticEvent = event;\n var item = textField ? (_a = {}, _a[textField] = itemText, _a) : itemText;\n if (_this.state.text !== undefined) {\n state.data.text = '';\n }\n state.data.focusedIndex = undefined;\n _this.base.filterChanged('', state);\n var newItems = _this.value.concat([item]);\n _this.triggerOnChange(newItems, state);\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n _this.handleWrapperClick = function (event) {\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var input = _this._input;\n if (!opened && input) {\n _this.focusElement(input);\n }\n var state = _this.base.initState();\n state.syntheticEvent = event;\n if (!_this.state.focused) {\n state.events.push({ type: 'onFocus' });\n state.data.focused = true;\n }\n _this.base.togglePopup(state);\n _this.applyState(state);\n };\n _this.handleItemClick = function (index, event) {\n var state = _this.base.initState();\n state.syntheticEvent = event;\n _this.handleItemSelect(index, state);\n if (_this.props.autoClose) {\n _this.base.togglePopup(state);\n }\n _this.applyState(state);\n };\n _this.handleBlur = function (event) {\n if (!_this.state.focused || _this._skipFocusEvent) {\n return;\n }\n var opened = _this.props.opened !== undefined ? _this.props.opened : _this.state.opened;\n var state = _this.base.initState();\n var _a = _this.props, allowCustom = _a.allowCustom, filterable = _a.filterable;\n state.syntheticEvent = event;\n state.data.focused = false;\n state.events.push({ type: 'onBlur' });\n if (opened) {\n if (_this.state.opened) {\n state.data.opened = false;\n }\n state.events.push({ type: 'onClose' });\n }\n if (!allowCustom && !filterable && _this.state.text) {\n state.data.text = '';\n }\n _this.applyState(state);\n };\n _this.handleFocus = function (event) {\n if (_this._skipFocusEvent) {\n return;\n }\n _this.base.handleFocus(event);\n };\n _this.onPopupOpened = function () {\n if (_this._input && _this.state.focused) {\n _this.focusElement(_this._input);\n }\n };\n _this.onPopupClosed = function () {\n if (_this.state.focused) {\n window.setTimeout(function () { if (_this.state.focused) {\n _this.focusElement(_this._input);\n } }, 0);\n }\n };\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || VALIDATION_MESSAGE);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(MultiSelect.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiSelect.prototype, \"value\", {\n /**\n * Represents the value of the MultiSelect.\n */\n get: function () {\n var result = [];\n if (this._valueItemsDuringOnChange) {\n result.push.apply(result, this._valueItemsDuringOnChange);\n }\n else if (this.props.value) {\n result.push.apply(result, this.props.value);\n }\n else if (this.state.value) {\n result.push.apply(result, this.state.value);\n }\n else if (this.props.defaultValue) {\n result.push.apply(result, this.props.defaultValue);\n }\n return result;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiSelect.prototype, \"name\", {\n /**\n * Gets the `name` property of the MultiSelect.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiSelect.prototype, \"validity\", {\n /**\n * Represents the validity state into which the MultiSelect is set.\n */\n get: function () {\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required\n || (this.value !== null && this.value.length > 0 && this.value !== undefined));\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiSelect.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : MultiSelect.defaultProps.required;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MultiSelect.prototype, \"validityStyles\", {\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : MultiSelect.defaultProps.validityStyles;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n MultiSelect.prototype.componentDidUpdate = function (prevProps, prevState) {\n var virtual = this.props.virtual;\n var skip = virtual ? virtual.skip : 0;\n var prevTotal = prevProps.virtual ? prevProps.virtual.total : 0;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var prevOpened = prevProps.opened !== undefined ? prevProps.opened : prevState.opened;\n var opening = !prevOpened && opened;\n var closing = prevOpened && !opened;\n var popupSettings = this.base.getPopupSettings();\n if (!popupSettings.animate && closing) {\n this.onPopupClosed();\n }\n if (virtual && virtual.total !== prevTotal) {\n this.base.vs.calcScrollElementHeight();\n this.base.vs.reset();\n }\n else {\n var _a = this.getFocusedState(), focusedItem = _a.focusedItem, focusedIndex = _a.focusedIndex;\n if (opening && virtual) {\n this.base.scrollToVirtualItem(virtual, focusedIndex - skip);\n }\n else if (opening && !virtual) {\n this.base.scrollToItem(focusedIndex);\n }\n else if (opened && prevOpened && focusedItem && this.scrollToFocused) {\n this.base.scrollToItem(focusedIndex - skip);\n }\n }\n this.scrollToFocused = false;\n this.setValidity();\n };\n /**\n * @hidden\n */\n MultiSelect.prototype.componentDidMount = function () {\n this.base.didMount();\n this.setValidity();\n };\n /**\n * @hidden\n */\n MultiSelect.prototype.onNavigate = function (state, keyCode) {\n var _a = this.props, allowCustom = _a.allowCustom, _b = _a.data, data = _b === void 0 ? [] : _b;\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var _c = this.getFocusedState(), focusedType = _c.focusedType, focusedIndex = _c.focusedIndex;\n var customItem = allowCustom && text;\n var customItemFocused = isCustom(focusedType);\n var base = this.base;\n var vs = base.vs;\n if (opened && keyCode === Keys.up && customItemFocused) {\n if (this.state.focusedIndex !== undefined) {\n state.data.focusedIndex = undefined;\n }\n }\n else {\n var newFocused = base.navigation.navigate({\n keyCode: keyCode,\n current: focusedIndex,\n max: (vs.enabled ? vs.total : data.length) - 1,\n min: customItem ? -1 : 0\n });\n if (newFocused !== undefined) {\n this.itemFocus(newFocused, state);\n this.scrollToFocused = true;\n }\n }\n this.applyState(state);\n };\n /**\n * @hidden\n */\n MultiSelect.prototype.render = function () {\n var _this = this;\n var _a = this.props, style = _a.style, className = _a.className, label = _a.label, dir = _a.dir, disabled = _a.disabled, tags = _a.tags, textField = _a.textField, dataItemKey = _a.dataItemKey, virtual = _a.virtual;\n var _b = this.state, focused = _b.focused, text = _b.text, focusedTag = _b.focusedTag;\n var vs = this.base.vs;\n var id = this.props.id || this._inputId;\n vs.enabled = virtual !== undefined;\n if (virtual !== undefined) {\n vs.skip = virtual.skip;\n vs.total = virtual.total;\n vs.pageSize = virtual.pageSize;\n }\n var tagsToRender = [];\n if (tags === undefined) {\n this.value.forEach(function (item) {\n tagsToRender.push({ text: getItemValue(item, textField), data: [item] });\n });\n }\n else {\n tagsToRender.push.apply(tagsToRender, tags);\n }\n this.setItems(tagsToRender, this._tags);\n var isValid = !this.validityStyles || this.validity.valid;\n var component = (React.createElement(\"span\", { ref: function (dropdown) { return _this._element = dropdown; }, className: classNames('k-widget k-multiselect', className, {\n 'k-state-focused': focused && !disabled,\n 'k-state-invalid': !isValid,\n 'k-state-disabled': disabled\n }), style: !label\n ? style\n : __assign({}, style, { width: undefined }), dir: dir, onFocus: this.handleFocus, onBlur: this.handleBlur },\n React.createElement(\"div\", { onClick: this.handleWrapperClick, ref: function (wrapper) { return _this.base.wrapper = wrapper; }, className: \"k-multiselect-wrap k-floatwrap\", onMouseDown: preventDefaultNonInputs },\n tagsToRender.length > 0 && React.createElement(TagList, { tagRender: this.props.tagRender, onTagDelete: this.onTagDelete, data: tagsToRender, guid: this.base.guid, focused: focusedTag ? tagsToRender.find(function (t) { return matchTags(t, focusedTag, dataItemKey); }) : undefined }),\n this.renderSearchbar(id)),\n this.renderListContainer()));\n return label ? (React.createElement(FloatingLabel, { label: label, editorId: id, editorValue: text || getItemValue(this.value[0], textField), editorValid: isValid, editorDisabled: disabled, style: { width: style ? style.width : undefined }, children: component })) : component;\n };\n MultiSelect.prototype.renderSearchbar = function (id) {\n var _a = this.state, activedescendant = _a.activedescendant, focusedTag = _a.focusedTag;\n var _b = this.props, disabled = _b.disabled, placeholder = _b.placeholder, ariaDescribedBy = _b.ariaDescribedBy;\n var text = (this.props.filter !== undefined ? this.props.filter : this.state.text) || '';\n var opened = this.props.opened !== undefined ? this.props.opened : this.state.opened;\n var focusedIndex = this.getFocusedState().focusedIndex;\n var clearButton = !!text || this.value.length > 0;\n var placeholderToShow = this.value.length === 0 && !text ? placeholder : undefined;\n var ariaActivedescendant = activedescendant === ActiveDescendant.TagsList && focusedTag !== undefined ?\n \"tag-\" + this.base.guid + \"-\" + focusedTag.text.replace(/\\s+/g, '-') :\n \"option-\" + this.base.guid + \"-\" + focusedIndex;\n return (React.createElement(SearchBar, { id: id, size: Math.max((placeholderToShow || '').length, text.length, 1), tabIndex: this.props.tabIndex, accessKey: this.props.accessKey, placeholder: placeholderToShow, value: text, onChange: this.onChangeHandler, onKeyDown: this.onInputKeyDown, ref: this.searchbarRef, disabled: disabled, expanded: opened, owns: this.base.listBoxId, activedescendant: ariaActivedescendant, ariaDescribedBy: \"tagslist-\" + this.base.guid + (ariaDescribedBy ? (' ' + ariaDescribedBy) : ''), clearButton: clearButton, clearButtonClick: this.clearButtonClick, loading: this.props.loading, ariaLabelledBy: this.props.ariaLabelledBy }));\n };\n MultiSelect.prototype.onTagsNavigate = function (event, state) {\n var keyCode = event.keyCode;\n var focusedTag = this.state.focusedTag;\n var tags = this._tags;\n var itemsKey = this.props.dataItemKey;\n var focusedIndex = focusedTag ?\n tags.findIndex(function (t) { return matchTags(t, focusedTag, itemsKey); }) : -1;\n var newFocusedTag = undefined;\n var hasFocused = focusedIndex !== -1;\n if (keyCode === Keys.left) {\n if (hasFocused) {\n focusedIndex = Math.max(0, focusedIndex - 1);\n }\n else {\n focusedIndex = tags.length - 1;\n }\n newFocusedTag = tags[focusedIndex];\n }\n else if (keyCode === Keys.right) {\n if (focusedIndex === tags.length - 1) {\n newFocusedTag = undefined;\n }\n else if (hasFocused) {\n focusedIndex = Math.min(tags.length - 1, focusedIndex + 1);\n newFocusedTag = tags[focusedIndex];\n }\n }\n else if (keyCode === Keys.home) {\n newFocusedTag = tags[0];\n }\n else if (keyCode === Keys.end) {\n newFocusedTag = tags[tags.length - 1];\n }\n else if (keyCode === Keys.delete) {\n if (hasFocused) {\n var items = this.value;\n removeDataItems(items, tags[focusedIndex].data, itemsKey);\n this.triggerOnChange(items, state);\n }\n }\n else if (keyCode === Keys.backspace) {\n var items = this.value;\n if (hasFocused) {\n removeDataItems(items, tags[focusedIndex].data, itemsKey);\n this.triggerOnChange(items, state);\n }\n else if (!hasFocused && tags.length) {\n var removed = tags.pop();\n removeDataItems(items, removed.data, itemsKey);\n this.triggerOnChange(items, state);\n }\n }\n if (newFocusedTag !== focusedTag) {\n state.data.focusedTag = newFocusedTag;\n state.data.activedescendant = ActiveDescendant.TagsList;\n }\n this.applyState(state);\n };\n MultiSelect.prototype.triggerOnChange = function (items, state) {\n if (this.props.value === undefined) {\n state.data.value = items.slice();\n }\n this._valueItemsDuringOnChange = [];\n this.setItems(items, this._valueItemsDuringOnChange);\n state.events.push({ type: 'onChange' });\n };\n MultiSelect.prototype.selectFocusedItem = function (event) {\n var _a = this.props, _b = _a.data, data = _b === void 0 ? [] : _b, virtual = _a.virtual;\n var focusedIndex = this.getFocusedState().focusedIndex;\n var skip = virtual ? virtual.skip : 0;\n if (data[focusedIndex - skip] !== undefined) {\n this.handleItemClick(focusedIndex, event);\n }\n };\n MultiSelect.prototype.setItems = function (srcItems, destItems) {\n destItems.length = 0;\n destItems.push.apply(destItems, srcItems);\n };\n MultiSelect.prototype.getFocusedState = function () {\n var focusedIndex = this.state.focusedIndex;\n var text = this.props.filter !== undefined ? this.props.filter : this.state.text;\n var _a = this.props, allowCustom = _a.allowCustom, _b = _a.data, data = _b === void 0 ? [] : _b, dataItemKey = _a.dataItemKey, virtual = _a.virtual, textField = _a.textField, _c = _a.focusedItemIndex, focusedItemIndex = _c === void 0 ? itemIndexStartsWith : _c;\n var skip = (virtual && virtual.skip) || 0;\n var focusedInd;\n if (focusedIndex !== undefined) {\n return {\n focusedIndex: focusedIndex,\n focusedItem: data[focusedIndex - skip],\n focusedType: FocusedItemType.ListItem\n };\n }\n var selected = this.value;\n if (allowCustom && text) {\n return { focusedItem: null, focusedIndex: -1, focusedType: FocusedItemType.CustomItem };\n }\n else if (text) {\n focusedInd = focusedItemIndex(data, text, textField);\n return {\n focusedItem: data[focusedInd],\n focusedIndex: focusedInd + skip,\n focusedType: FocusedItemType.ListItem\n };\n }\n else if (selected.length) {\n var last_1 = selected[selected.length - 1];\n focusedInd = data.findIndex(function (i) { return areSame(i, last_1, dataItemKey); });\n if (data[focusedInd] !== undefined) {\n return {\n focusedIndex: focusedInd + skip,\n focusedItem: data[focusedInd],\n focusedType: FocusedItemType.ListItem\n };\n }\n return { focusedType: FocusedItemType.None, focusedIndex: -1 };\n }\n return skip === 0 ?\n { focusedItem: data[0], focusedIndex: 0, focusedType: FocusedItemType.ListItem } :\n { focusedType: FocusedItemType.None, focusedIndex: -1 };\n };\n MultiSelect.prototype.focusElement = function (element) {\n var _this = this;\n this._skipFocusEvent = true;\n element.focus();\n window.setTimeout(function () { return _this._skipFocusEvent = false; }, 0);\n };\n MultiSelect.prototype.applyState = function (state) {\n this.base.applyState(state);\n this._valueItemsDuringOnChange = null;\n };\n /**\n * @hidden\n */\n MultiSelect.propTypes = __assign({}, DropDownBase.propTypes, { autoClose: PropTypes.bool, value: PropTypes.arrayOf(PropTypes.any), defaultValue: PropTypes.arrayOf(PropTypes.any), dataItemKey: PropTypes.string, placeholder: PropTypes.string, tags: PropTypes.arrayOf(PropTypes.shape({\n text: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.any)\n })), tagRender: PropTypes.func, id: PropTypes.string, ariaLabelledBy: PropTypes.string, ariaDescribedBy: PropTypes.string });\n /**\n * @hidden\n */\n MultiSelect.defaultProps = __assign({}, DropDownBase.defaultProps, { autoClose: true, required: false });\n return MultiSelect;\n}(React.Component));\nexport default MultiSelect;\n","var __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};\nimport * as React from 'react';\nimport List from './List';\n/**\n * @hidden\n */\nexport var MultiColumnList = function (props) {\n return React.createElement(List, __assign({}, props, { listClassName: \"k-grid-list\" }));\n};\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { MultiColumnList } from './../common/MultiColumnList';\nimport { classNames, getScrollbarWidth, setScrollbarWidth, getter } from '@progress/kendo-react-common';\nimport ComboBox from '../ComboBox/ComboBox';\nvar columnWidth = function (width, defaultWidth) {\n if (width) {\n return typeof width === 'number' ? width + 'px' : width;\n }\n return defaultWidth;\n};\n/**\n * Represents the MultiColumnComboBox component.\n */\nexport var MultiColumnComboBox = React.forwardRef(function (props, ref) {\n var target = React.useRef(null);\n var comboBoxRef = React.useRef(null);\n var scrollbarWidth = getScrollbarWidth();\n var _a = props.columns, columns = _a === void 0 ? defaultProps.columns : _a, _b = props.popupSettings, popupSettings = _b === void 0 ? defaultProps.popupSettings : _b, onOpen = props.onOpen, onClose = props.onClose, onFocus = props.onFocus, onBlur = props.onBlur, onChange = props.onChange, onFilterChange = props.onFilterChange, onPageChange = props.onPageChange, other = __rest(props, [\"columns\", \"popupSettings\", \"onOpen\", \"onClose\", \"onFocus\", \"onBlur\", \"onChange\", \"onFilterChange\", \"onPageChange\"]);\n React.useImperativeHandle(target, function () {\n return ({\n element: comboBoxRef.current && comboBoxRef.current.element,\n focus: function () {\n if (comboBoxRef.current) {\n comboBoxRef.current.focus();\n }\n },\n get value() { return comboBoxRef.current && comboBoxRef.current.value; },\n get name() { return comboBoxRef.current && comboBoxRef.current.name; },\n props: props\n });\n });\n React.useImperativeHandle(ref, function () { return target.current; });\n var popupWidth = React.useMemo(function () {\n return \"calc(\" + columns.map(function (column) { return columnWidth(column.width, defaultProps.width); }).filter(Boolean).join(' + ') + \" + \" + scrollbarWidth + \"px)\";\n }, [columns, scrollbarWidth]);\n var header = React.useMemo(function () { return (React.createElement(React.Fragment, null,\n props.header,\n React.createElement(\"div\", { className: \"k-grid-header\" },\n React.createElement(\"div\", { className: \"k-grid-header-wrap\" },\n React.createElement(\"table\", { role: \"presentation\" },\n React.createElement(\"colgroup\", null, columns.map(function (column, i) {\n return (React.createElement(\"col\", { key: column.uniqueKey ? column.uniqueKey : i, style: { width: column.width ? column.width : defaultProps.width } }));\n })),\n React.createElement(\"tbody\", null,\n React.createElement(\"tr\", null, columns.map(function (column, i) {\n return (React.createElement(\"th\", { key: column.uniqueKey ? column.uniqueKey : i, className: \"k-header\" }, column.header || '\\u00A0'));\n })))))))); }, [props.header, columns]);\n var skip = props.virtual ? props.virtual.skip : 0;\n var itemRender = React.useCallback(function (li, liProps) {\n var children = columns.map(function (column, i) { return (React.createElement(\"span\", { className: \"k-cell\", style: { width: column.width ? column.width : defaultProps.width }, key: column.uniqueKey ? column.uniqueKey : i }, column.field ? getter(column.field)(liProps.dataItem) : '')); });\n var group = undefined;\n var curGroup, prevGroup, groupGetter, data = props.data || [];\n var index = liProps.index - skip;\n if (props.groupField !== undefined) {\n groupGetter = getter(props.groupField);\n curGroup = groupGetter(data[index]);\n prevGroup = groupGetter(data[index - 1]);\n if (curGroup && prevGroup && curGroup !== prevGroup) {\n group = curGroup;\n }\n }\n if (group) {\n children.push(React.createElement(\"div\", { key: \"group\", className: \"k-cell k-group-cell\" },\n React.createElement(\"span\", null, group)));\n }\n var rendering = React.cloneElement(li, __assign({}, li.props), children);\n return props.itemRender ? props.itemRender.call(undefined, rendering, liProps) : rendering;\n }, [columns, props.groupField, props.itemRender, props.data, skip]);\n var handleEvent = React.useCallback(function (handler, event) {\n if (handler) {\n handler.call(undefined, __assign({}, event, { target: target.current }));\n }\n }, []);\n var onOpenHandler = React.useCallback(function (event) { return handleEvent(onOpen, event); }, [onOpen]);\n var onCloseHandler = React.useCallback(function (event) { return handleEvent(onClose, event); }, [onClose]);\n var onFocusHandler = React.useCallback(function (event) { return handleEvent(onFocus, event); }, [onFocus]);\n var onBlurHandler = React.useCallback(function (event) { return handleEvent(onBlur, event); }, [onBlur]);\n var onChangeHandler = React.useCallback(function (event) { return handleEvent(onChange, event); }, [onChange]);\n var onFilterChangeHandler = React.useCallback(function (event) { return handleEvent(onFilterChange, event); }, [onFilterChange]);\n var onPageChangeHandler = React.useCallback(function (event) { return handleEvent(onPageChange, event); }, [onPageChange]);\n React.useEffect(function () { setScrollbarWidth(); });\n var List = React.useCallback(function (listProps) { return React.createElement(MultiColumnList, __assign({}, listProps)); }, []);\n return (React.createElement(ComboBox, __assign({}, other, { list: List, popupSettings: __assign({ width: popupWidth }, popupSettings, { popupClass: 'k-dropdowngrid-popup', className: classNames('k-popup-flush', popupSettings.className) }), ref: comboBoxRef, header: header, itemRender: itemRender, onOpen: onOpenHandler, onClose: onCloseHandler, onFocus: onFocusHandler, onBlur: onBlurHandler, onChange: onChangeHandler, onFilterChange: onFilterChangeHandler, onPageChange: onPageChangeHandler })));\n});\nvar propTypes = __assign({}, ComboBox.propTypes, { columns: PropTypes.any.isRequired });\nvar defaultProps = {\n columns: [],\n popupSettings: {},\n width: '200px'\n};\nMultiColumnComboBox.displayName = 'KendoMultiColumnComboBox';\n// TODO: delete casting when @types/react is updated!\nMultiColumnComboBox.propTypes = propTypes;\nMultiColumnComboBox.defaultProps = defaultProps;\n","/**\n * @hidden\n */\nexport var EMPTY_ID = '';\n/**\n * @hidden\n */\nexport var ZERO_LEVEL_ZERO_NODE_ID = '0';\n/**\n * @hidden\n */\nexport var SEPARATOR = '_';\n/**\n * @hidden\n */\nexport function getItemById(itemId, items, childrenField) {\n if (isIdZeroLevel(itemId)) {\n return items[Number(itemId)];\n }\n else {\n var rootParentItem = items[Number(getRootParentId(itemId))];\n var subItems = (rootParentItem && rootParentItem[childrenField]) || [];\n return subItems.length ?\n getItemById(getIdWithoutRootParentId(itemId), subItems, childrenField) : undefined;\n }\n}\n/**\n * @hidden\n */\nexport function getRootParentId(itemId) {\n return isIdEmptyOrZeroLevel(itemId) ? itemId : itemId.split(SEPARATOR)[0];\n}\n/**\n * @hidden\n */\nexport function getIdWithoutRootParentId(itemId) {\n if (isIdEmptyOrZeroLevel(itemId)) {\n return itemId;\n }\n else {\n var firstSeparatorIndex = itemId.indexOf(SEPARATOR);\n return itemId.substring(firstSeparatorIndex + 1);\n }\n}\n/**\n * @hidden\n */\nexport function getFirstChildId(itemId) {\n return createId('0', itemId);\n}\n/**\n * @hidden\n */\nexport function createId(childId, parentId) {\n childId = childId.toString();\n return parentId ? parentId + SEPARATOR + childId : childId;\n}\n/**\n * @hidden\n */\nexport function getDirectParentId(itemId) {\n var lastSeparatorIndex = itemId.lastIndexOf(SEPARATOR);\n return lastSeparatorIndex < 0 ? EMPTY_ID : itemId.substring(0, lastSeparatorIndex);\n}\n/**\n * @hidden\n */\nexport function isIdEmptyOrZeroLevel(itemId) {\n return itemId === EMPTY_ID || itemId.indexOf(SEPARATOR) < 0;\n}\n/**\n * @hidden\n */\nexport function isIdZeroLevel(itemId) {\n return itemId !== EMPTY_ID && itemId.indexOf(SEPARATOR) < 0;\n}\n/**\n * @hidden\n */\nexport function getAllShortIds(itemId) {\n return itemId.split(SEPARATOR);\n}\n/**\n * @hidden\n */\nexport function getShortId(itemId) {\n var lastSeparatorIndex = itemId.lastIndexOf(SEPARATOR);\n return lastSeparatorIndex < 0 ? itemId : itemId.substring(lastSeparatorIndex + 1);\n}\n/**\n * @hidden\n */\nexport function isItemFirstFromSiblings(itemId) {\n return getShortId(itemId) === ZERO_LEVEL_ZERO_NODE_ID;\n}\n/**\n * @hidden\n */\nexport function getDecrementedItemIdAfterRemoval(removedItemId, itemId) {\n var preservedItemId = itemId;\n removedItemId = 'r' + SEPARATOR + removedItemId;\n itemId = 'r' + SEPARATOR + itemId;\n var itemSharedPath = getDirectParentId(removedItemId) + SEPARATOR;\n if (itemId.startsWith(itemSharedPath)) {\n var itemNotSharedPath = itemId.substring(itemSharedPath.length);\n if (itemNotSharedPath) {\n var siblingShortId = getRootParentId(itemNotSharedPath);\n if (Number(getShortId(removedItemId)) < Number(siblingShortId)) {\n var decrementedId = itemSharedPath +\n (Number(siblingShortId) - 1).toString() +\n itemNotSharedPath.substring(siblingShortId.length);\n return getIdWithoutRootParentId(decrementedId);\n }\n }\n }\n return preservedItemId;\n}\n","var PROPS_COUNT_LIMIT = 50000;\n/**\n * @hidden\n */\n// An alternative is to use array.sort() and\n// implement a binary search function.\nvar SortedPublicItemIds = /** @class */ (function () {\n function SortedPublicItemIds() {\n this.objects = [];\n }\n SortedPublicItemIds.prototype.init = function (publicItemIds) {\n var currentObj;\n for (var i = 0; i < publicItemIds.length; i++) {\n if (i % PROPS_COUNT_LIMIT === 0) {\n currentObj = {};\n this.objects.push(currentObj);\n }\n currentObj[publicItemIds[i]] = true;\n }\n };\n SortedPublicItemIds.prototype.hasId = function (publicItemId) {\n return this.objects.some(function (obj) { return obj[publicItemId]; });\n };\n return SortedPublicItemIds;\n}());\nexport default SortedPublicItemIds;\n","/**\n * @hidden\n */\nexport function getNestedValue(fieldName, dataItem) {\n var path = (fieldName || '').split('.');\n var data = dataItem;\n path.forEach(function (p) {\n data = data ? data[p] : undefined;\n });\n return data;\n}\n/**\n * @hidden\n */\nexport function isArray(operation) {\n return operation.length !== undefined;\n}\n","var __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};\nimport { EMPTY_ID, isIdZeroLevel, createId, getRootParentId, getIdWithoutRootParentId, getAllShortIds } from './itemIdUtils';\nimport SortedPublicItemIds from './SortedPublicItemIds';\nimport { getNestedValue } from './misc';\n/**\n * @hidden\n */\nexport function hasChildren(item, childrenField) {\n var children = getNestedValue(childrenField, item);\n return Boolean(children && children.length);\n}\n/**\n * @hidden\n */\nexport function isItemExpandedAndWithChildren(item, fieldsSvc) {\n return fieldsSvc.expanded(item) && hasChildren(item, fieldsSvc.getChildrenField());\n}\n/**\n * @hidden\n */\nexport function resolveItemId(publicId, idField, items, childrenField) {\n var resolvedIds = resolveItemsIds([publicId], idField, items, childrenField);\n return resolvedIds.length ? resolvedIds[0] : undefined;\n}\n/**\n * @hidden\n */\nexport function resolveItemsIds(publicIds, idField, items, childrenField) {\n var result = [];\n var sortedIds = new SortedPublicItemIds();\n sortedIds.init(publicIds);\n resolveItemsIdsHelper(sortedIds, idField, items, EMPTY_ID, result, childrenField);\n return result;\n}\n/**\n * @hidden\n */\nexport function updateItem(items, itemId, update, cloneField, childrenField) {\n var _a;\n var itemIndex = Number(getRootParentId(itemId));\n if (itemIndex >= items.length) {\n return items;\n }\n var result = items;\n var item = items[itemIndex];\n // Clone the item before updating it.\n if (!item[cloneField]) {\n result = items.slice();\n item = result[itemIndex] = Object.assign({}, item, (_a = {}, _a[cloneField] = true, _a));\n }\n // Directly update the item.\n if (isIdZeroLevel(itemId)) {\n update(item);\n }\n else if (item[childrenField]) {\n item[childrenField] = updateItem(item[childrenField], getIdWithoutRootParentId(itemId), update, cloneField, childrenField);\n }\n return result;\n}\n/**\n * @hidden\n */\nexport function isEnabledAndAllParentsEnabled(itemId, items, fieldsSvc) {\n var ids = getAllShortIds(itemId);\n var currentItems = items;\n for (var i = 0; i < ids.length; i++) {\n var currentItem = currentItems[Number(ids[i])];\n if (fieldsSvc.disabled(currentItem)) {\n return false;\n }\n else {\n currentItems = currentItem[fieldsSvc.getChildrenField()];\n }\n }\n return true;\n}\n/**\n * @hidden\n */\nexport function getAllDirectIndirectChildrenIds(item, itemId, childrenField, idField) {\n return idField ? getChildrenPublicIds(item) : getChildrenHierarchicalIndices(item, itemId);\n function getChildrenHierarchicalIndices(startItem, startItemId) {\n var result = [];\n var children = startItem[childrenField] || [];\n for (var i = 0; i < children.length; i++) {\n var id = createId(i, startItemId);\n result.push(id);\n result = result.concat(getChildrenHierarchicalIndices(children[i], id));\n }\n return result;\n }\n function getChildrenPublicIds(startItem) {\n var result = [];\n var children = startItem[childrenField] || [];\n for (var i = 0; i < children.length; i++) {\n result.push(getNestedValue(idField, children[i]));\n result = result.concat(getChildrenPublicIds(children[i]));\n }\n return result;\n }\n}\n/**\n * @hidden\n */\nexport function areAllDirectChildrenChecked(item, itemId, idField, childrenField, check) {\n var children = item[childrenField] || [];\n return children.every(function (child, index) {\n return check.indexOf(idField ? getNestedValue(idField, child) : createId(index, itemId)) > -1;\n });\n}\n/**\n * @hidden\n */\nexport function getAllParents(itemId, childrenField, items) {\n var result = [];\n var ids = getAllShortIds(itemId);\n var currentItems = items;\n for (var i = 0; i < ids.length - 1; i++) {\n if (!currentItems) {\n break;\n }\n var currentItem = currentItems[Number(ids[i])];\n result.push(currentItem);\n currentItems = currentItem[childrenField];\n }\n return result;\n}\n/**\n * @hidden\n */\nexport function removeItem(itemId, childrenField, items) {\n var result = items.slice();\n if (isIdZeroLevel(itemId)) {\n result.splice(Number(itemId), 1);\n }\n else {\n var rootParentIndex = Number(getRootParentId(itemId));\n var rootParent = result[rootParentIndex] = __assign({}, result[rootParentIndex]);\n rootParent[childrenField] = removeItem(getIdWithoutRootParentId(itemId), childrenField, rootParent[childrenField]);\n }\n return result;\n}\n/**\n * @hidden\n */\nexport function addItem(item, operation, childrenField, targetItemId, items) {\n var result = items.slice();\n if (isIdZeroLevel(targetItemId)) {\n if (operation === 'child') {\n var targetItem = result[Number(targetItemId)] = __assign({}, result[Number(targetItemId)]);\n if (targetItem[childrenField]) {\n targetItem[childrenField] = targetItem[childrenField].slice();\n targetItem[childrenField].push(item);\n }\n else {\n targetItem[childrenField] = [item];\n }\n }\n else {\n result.splice(Number(targetItemId) + (operation === 'after' ? 1 : 0), 0, item);\n }\n }\n else {\n var rootParentIndex = Number(getRootParentId(targetItemId));\n var rootParent = result[rootParentIndex] = __assign({}, result[rootParentIndex]);\n rootParent[childrenField] = addItem(item, operation, childrenField, getIdWithoutRootParentId(targetItemId), rootParent[childrenField]);\n }\n return result;\n}\nfunction resolveItemsIdsHelper(publicItemIds, idField, items, parentItemId, resolvedIds, childrenField) {\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n var id = createId(i, parentItemId);\n if (publicItemIds.hasId(getNestedValue(idField, item))) {\n resolvedIds.push(id);\n }\n if (hasChildren(item, childrenField)) {\n resolveItemsIdsHelper(publicItemIds, idField, getNestedValue(childrenField, item), id, resolvedIds, childrenField);\n }\n }\n}\n","import { Keys } from '@progress/kendo-react-common';\nimport * as idUtils from './itemIdUtils';\nimport { isItemExpandedAndWithChildren, isEnabledAndAllParentsEnabled } from './itemUtils';\n/**\n * @hidden\n */\nexport default function getItemIdUponKeyboardNavigation(item, itemId, items, keyCode, fieldsSvc) {\n switch (keyCode) {\n case Keys.left:\n return getIdUponLeftKey();\n case Keys.right:\n return getIdUponRightKey();\n case Keys.up:\n return getIdUponUpKey();\n case Keys.down:\n return getIdUponDownKey();\n case Keys.home:\n return idUtils.ZERO_LEVEL_ZERO_NODE_ID;\n case Keys.end:\n return getIdUponEndKey();\n default:\n return itemId;\n }\n function getIdUponLeftKey() {\n return idUtils.isIdZeroLevel(itemId)\n // For expanded disabled items, navigate directly to the parent.\n // Collapse cannot happen because an event is not fired to the client.\n || (fieldsSvc.expanded(item) && isEnabledAndAllParentsEnabled(itemId, items, fieldsSvc)) ?\n itemId : idUtils.getDirectParentId(itemId);\n }\n function getIdUponRightKey() {\n return isItemExpandedAndWithChildren(item, fieldsSvc) ? idUtils.getFirstChildId(itemId) : itemId;\n }\n function getIdUponUpKey() {\n var index = Number(idUtils.getShortId(itemId));\n var parentId = idUtils.getDirectParentId(itemId);\n return index ? getLastNotOpenedChildId(idUtils.createId(index - 1, parentId), items, fieldsSvc) :\n idUtils.isIdZeroLevel(itemId) ? itemId : parentId;\n }\n function getIdUponDownKey() {\n if (isItemExpandedAndWithChildren(item, fieldsSvc)) {\n return idUtils.getFirstChildId(itemId);\n }\n else {\n return getNextItemId(itemId, items, fieldsSvc) || itemId;\n }\n }\n function getIdUponEndKey() {\n var result = (items.length - 1).toString();\n var currentItem = items[items.length - 1];\n var children;\n while (isItemExpandedAndWithChildren(currentItem, fieldsSvc)) {\n children = currentItem[fieldsSvc.getChildrenField()];\n result = idUtils.createId(children.length - 1, result);\n currentItem = children[children.length - 1];\n }\n return result;\n }\n}\nfunction getNextItemId(itemId, items, fieldsSvc) {\n var parentId = idUtils.getDirectParentId(itemId);\n var parent = parentId ? idUtils.getItemById(parentId, items, fieldsSvc.getChildrenField()) : undefined;\n var siblings = parent ? parent[fieldsSvc.getChildrenField()] : items;\n var index = Number(idUtils.getShortId(itemId));\n return index < siblings.length - 1 ?\n idUtils.createId(index + 1, parentId) :\n parent ? getNextItemId(parentId, items, fieldsSvc) : undefined;\n}\nfunction getLastNotOpenedChildId(itemId, items, fieldsSvc) {\n var item = idUtils.getItemById(itemId, items, fieldsSvc.getChildrenField());\n if (isItemExpandedAndWithChildren(item, fieldsSvc)) {\n return getLastNotOpenedChildId(idUtils.createId(item[fieldsSvc.getChildrenField()].length - 1, itemId), items, fieldsSvc);\n }\n else {\n return itemId;\n }\n}\n","/**\n * @hidden\n */\nexport var EXPAND_FIELD = 'expanded';\n/**\n * @hidden\n */\nexport var TEXT_FIELD = 'text';\n/**\n * @hidden\n */\nexport var DISABLED_FIELD = 'disabled';\n/**\n * @hidden\n */\nexport var CHILDREN_FIELD = 'items';\n/**\n * @hidden\n */\nexport var HAS_CHILDREN_FIELD = 'hasChildren';\n/**\n * @hidden\n */\nexport var SELECT_FIELD = 'selected';\n/**\n * @hidden\n */\nexport var CHECK_FIELD = 'checked';\n/**\n * @hidden\n */\nexport var CHECK_INDETERMINATE_FIELD = 'checkIndeterminate';\n/**\n * @hidden\n */\nexport var DOM_KENDO_ITEM_ID_FIELD = '_kendoItemId';\n/**\n * @hidden\n */\nexport var DOM_KENDO_TREEVIEW_GUID_FIELD = '_kendoTreeViewGuid';\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { classNames, guid, Draggable } from '@progress/kendo-react-common';\nimport { createId } from './utils/itemIdUtils';\nimport { isItemExpandedAndWithChildren, hasChildren } from './utils/itemUtils';\nimport { Reveal } from '@progress/kendo-react-animation';\nimport { DOM_KENDO_ITEM_ID_FIELD, DOM_KENDO_TREEVIEW_GUID_FIELD } from './utils/consts';\n/**\n * @hidden\n */\nexport var TreeViewItemPropsContext = React.createContext(function (props) { return props; });\n/**\n * @hidden\n */\nvar TreeViewItemWithoutContext = /** @class */ (function (_super) {\n __extends(TreeViewItemWithoutContext, _super);\n function TreeViewItemWithoutContext() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.itemGuid = guid();\n _this.onCheckChange = function (e) {\n _this.props.onCheckChange(e, _this.item, _this.itemId);\n };\n _this.onExpandChange = function (e) {\n _this.props.onExpandChange(e, _this.item, _this.itemId);\n };\n _this.onItemClick = function (e) {\n _this.props.onItemClick(e, _this.item, _this.itemId);\n };\n _this.onPress = function (e) {\n _this.props.onPress(e.event, _this.item, _this.itemId);\n };\n _this.onDrag = function (e) {\n _this.props.onDrag(e.event, _this.item, _this.itemId);\n };\n _this.onRelease = function (e) {\n _this.props.onRelease(e.event, _this.item, _this.itemId);\n };\n _this.assignDraggableMeta = function (element) {\n if (element) {\n element[DOM_KENDO_ITEM_ID_FIELD] = _this.props.itemId;\n element[DOM_KENDO_TREEVIEW_GUID_FIELD] = _this.props.treeGuid;\n }\n };\n return _this;\n }\n TreeViewItemWithoutContext.prototype.render = function () {\n var _this = this;\n var subitems = this.renderSubitemsIfApplicable();\n var itemInPart = this.renderItemInPart();\n return (React.createElement(\"li\", { className: this.getRootClassName(), tabIndex: this.tabIndex, role: \"treeitem\", \"aria-expanded\": this.ariaExpanded, \"aria-selected\": this.ariaSelected, \"aria-checked\": this.ariaChecked, \"aria-disabled\": this.fieldsSvc.disabled(this.item) ? true : undefined, ref: function (el) { return _this.itemElement = el; } },\n React.createElement(\"div\", { className: \"k-mid\", ref: this.assignDraggableMeta },\n this.renderExpandIcon(),\n this.renderCheckbox(),\n this.props.draggable ?\n React.createElement(Draggable, { onPress: this.onPress, onDrag: this.onDrag, onRelease: this.onRelease }, itemInPart) : itemInPart),\n this.props.animate ?\n React.createElement(Reveal, { transitionEnterDuration: 200, transitionExitDuration: 200, style: { display: 'block' }, children: subitems }) : subitems));\n };\n TreeViewItemWithoutContext.prototype.componentDidMount = function () {\n var focusedItemId = this.props.focusedItemId;\n var currentItemId = this.itemId;\n if (focusedItemId && focusedItemId === currentItemId) {\n this.props.onFocusDomElNeeded(this.itemElement);\n }\n if (this.checkboxElement) {\n this.checkboxElement.indeterminate = this.fieldsSvc.checkIndeterminate(this.item);\n }\n };\n TreeViewItemWithoutContext.prototype.componentDidUpdate = function (prevProps) {\n var focusedItemId = this.props.focusedItemId;\n if (focusedItemId &&\n focusedItemId !== prevProps.focusedItemId &&\n focusedItemId === this.itemId) {\n this.props.onFocusDomElNeeded(this.itemElement);\n }\n if (this.checkboxElement) {\n var indeterminate = this.fieldsSvc.checkIndeterminate(this.item);\n if (indeterminate !== prevProps.fieldsService.checkIndeterminate(prevProps.item)) {\n this.checkboxElement.indeterminate = indeterminate;\n }\n }\n };\n TreeViewItemWithoutContext.prototype.renderCheckbox = function () {\n var _this = this;\n if (this.props.checkboxes) {\n return (React.createElement(\"div\", { className: \"k-checkbox-wrapper\" },\n React.createElement(\"input\", { type: \"checkbox\", className: \"k-checkbox\", checked: Boolean(this.fieldsSvc.checked(this.item)), id: this.itemGuid, tabIndex: -1, onChange: this.onCheckChange, ref: function (el) { return _this.checkboxElement = el; } }),\n React.createElement(\"label\", { className: \"k-checkbox-label\", htmlFor: this.itemGuid })));\n }\n else {\n return undefined;\n }\n };\n TreeViewItemWithoutContext.prototype.renderExpandIcon = function () {\n return this.props.expandIcons &&\n // If it is explicitly said that the item has children (even not loaded yet)\n // or if the item actually has children, then render the icon.\n (this.fieldsSvc.hasChildren(this.item) || hasChildren(this.item, this.fieldsSvc.getChildrenField())) ?\n React.createElement(\"span\", { className: this.getIconClassName(), onClick: this.onExpandChange }) : undefined;\n };\n TreeViewItemWithoutContext.prototype.renderSubitemsIfApplicable = function () {\n var _this = this;\n return isItemExpandedAndWithChildren(this.item, this.fieldsSvc) ?\n (React.createElement(\"ul\", { className: \"k-content\", role: \"group\" }, this.fieldsSvc.children(this.item).map(function (item, index) {\n return (React.createElement(TreeViewItem, { item: item, itemId: createId(index, _this.itemId), treeGuid: _this.props.treeGuid, animate: _this.props.animate, focusedItemId: _this.props.focusedItemId, tabbableItemId: _this.props.tabbableItemId, fieldsService: _this.props.fieldsService, itemUI: _this.props.itemUI, checkboxes: _this.props.checkboxes, ariaMultiSelectable: _this.props.ariaMultiSelectable, onItemClick: _this.props.onItemClick, onFocusDomElNeeded: _this.props.onFocusDomElNeeded, draggable: _this.props.draggable, onPress: _this.props.onPress, onDrag: _this.props.onDrag, onRelease: _this.props.onRelease, expandIcons: _this.props.expandIcons, onExpandChange: _this.props.onExpandChange, onCheckChange: _this.props.onCheckChange, key: index }));\n }))) : undefined;\n };\n TreeViewItemWithoutContext.prototype.renderItemInPart = function () {\n return (React.createElement(\"span\", { className: this.getContentClassName(), style: { touchAction: 'none' }, onClick: this.onItemClick }, this.props.itemUI ?\n React.createElement(this.props.itemUI, { item: this.item, itemHierarchicalIndex: this.itemId }) :\n this.fieldsSvc.text(this.item)));\n };\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"fieldsSvc\", {\n get: function () {\n return this.props.fieldsService;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"itemId\", {\n get: function () {\n return this.props.itemId;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"item\", {\n get: function () {\n return this.props.item;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"tabIndex\", {\n get: function () {\n return (this.props.focusedItemId || this.props.tabbableItemId) === this.itemId ? 0 : -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"ariaExpanded\", {\n get: function () {\n return this.fieldsSvc.hasChildren(this.item) || hasChildren(this.item, this.fieldsSvc.getChildrenField()) ?\n Boolean(this.fieldsSvc.expanded(this.item)) : undefined;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"ariaChecked\", {\n get: function () {\n if (this.props.checkboxes) {\n if (this.fieldsSvc.checked(this.item)) {\n return 'true';\n }\n else {\n return this.fieldsSvc.checkIndeterminate(this.item) ? 'mixed' : 'false';\n }\n }\n else {\n return undefined;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TreeViewItemWithoutContext.prototype, \"ariaSelected\", {\n get: function () {\n if (this.fieldsSvc.selected(this.item)) {\n return true;\n }\n else if (this.props.ariaMultiSelectable) {\n return this.fieldsSvc.disabled(this.item) ? undefined : false;\n }\n else {\n return undefined;\n }\n },\n enumerable: true,\n configurable: true\n });\n TreeViewItemWithoutContext.prototype.getIconClassName = function () {\n return classNames('k-icon', {\n 'k-i-expand': !this.fieldsSvc.expanded(this.item),\n 'k-i-collapse': this.fieldsSvc.expanded(this.item),\n 'k-i-loading': this.fieldsSvc.expanded(this.item) && !hasChildren(this.item, this.fieldsSvc.getChildrenField())\n });\n };\n TreeViewItemWithoutContext.prototype.getRootClassName = function () {\n return classNames('k-item k-treeview-item', { 'k-state-disabled': this.fieldsSvc.disabled(this.item) });\n };\n TreeViewItemWithoutContext.prototype.getContentClassName = function () {\n return classNames('k-in', {\n 'k-state-focused': this.props.focusedItemId === this.itemId,\n 'k-state-selected': this.fieldsSvc.selected(this.item)\n });\n };\n return TreeViewItemWithoutContext;\n}(React.Component));\n/**\n * @hidden\n */\nexport var TreeViewItem = React.forwardRef(function (props, ref) {\n var contextPropsCallback = React.useContext(TreeViewItemPropsContext);\n var treeViewItemProps = contextPropsCallback.call(undefined, props);\n return (React.createElement(TreeViewItemWithoutContext, __assign({ ref: ref }, treeViewItemProps)));\n});\nTreeViewItem.displayName = 'TreeViewItem';\n","import { getNestedValue } from './misc';\n/**\n * @hidden\n */\nvar FieldsService = /** @class */ (function () {\n function FieldsService(treeViewProps) {\n this.expandField = treeViewProps.expandField;\n this.selectField = treeViewProps.selectField;\n this.hasChildrenField = treeViewProps.hasChildrenField;\n this.childrenField = treeViewProps.childrenField;\n this.textField = treeViewProps.textField;\n this.disableField = treeViewProps.disableField;\n this.checkField = treeViewProps.checkField;\n this.checkIndeterminateField = treeViewProps.checkIndeterminateField;\n this.focusIdField = treeViewProps.focusIdField;\n }\n FieldsService.prototype.expanded = function (item) {\n return getNestedValue(this.expandField, item);\n };\n FieldsService.prototype.selected = function (item) {\n return getNestedValue(this.selectField, item);\n };\n FieldsService.prototype.text = function (item) {\n return getNestedValue(this.textField, item);\n };\n FieldsService.prototype.disabled = function (item) {\n return getNestedValue(this.disableField, item);\n };\n FieldsService.prototype.hasChildren = function (item) {\n return getNestedValue(this.hasChildrenField, item);\n };\n FieldsService.prototype.children = function (item) {\n var children = getNestedValue(this.childrenField, item);\n return children ? children : [];\n };\n FieldsService.prototype.checked = function (item) {\n return getNestedValue(this.checkField, item);\n };\n FieldsService.prototype.checkIndeterminate = function (item) {\n return getNestedValue(this.checkIndeterminateField, item);\n };\n FieldsService.prototype.focusId = function (item) {\n return this.focusIdField && getNestedValue(this.focusIdField, item);\n };\n FieldsService.prototype.getChildrenField = function () {\n return this.childrenField;\n };\n return FieldsService;\n}());\nexport default FieldsService;\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-treeview',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584370,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Keys, dispatchEvent, guid } from '@progress/kendo-react-common';\nimport nav from './utils/getItemIdUponKeyboardNavigation';\nimport { resolveItemId, isEnabledAndAllParentsEnabled, hasChildren } from './utils/itemUtils';\nimport { TreeViewItem } from './TreeViewItem';\nimport { ZERO_LEVEL_ZERO_NODE_ID, getItemById } from './utils/itemIdUtils';\nimport FieldsService from './utils/FieldsService';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nimport { CHECK_FIELD, CHECK_INDETERMINATE_FIELD, CHILDREN_FIELD, DISABLED_FIELD, EXPAND_FIELD, HAS_CHILDREN_FIELD, SELECT_FIELD, TEXT_FIELD } from './utils/consts';\n/**\n * Represents the [KendoReact TreeView component]({% slug overview_treeview %}).\n *\n * @example\n * ```jsx\n * const data = [{\n * text: 'Furniture', expanded: true, items: [\n * { text: 'Tables & Chairs' }, { text: 'Sofas' }, { text: 'Occasional Furniture' }]\n * }, {\n * text: 'Decor', expanded: true, items: [\n * { text: 'Bed Linen' }, { text: 'Curtains & Blinds' }, { text: 'Carpets' }]\n * }];\n * class App extends React.Component {\n * render() {\n * return ;\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar TreeView = /** @class */ (function (_super) {\n __extends(TreeView, _super);\n function TreeView(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = { focusedItemId: undefined, focusedItemPublicId: undefined, tabbableItemId: ZERO_LEVEL_ZERO_NODE_ID };\n // When there is a change in state.focusedItemId, calling focus() on the dom element of the focused item\n // is most often not needed, because the browser focuses the element on its own.\n // https://github.com/telerik/kendo-react/issues/190\n _this.allowExplicitFocus = false;\n _this.treeGuid = guid();\n _this._element = null;\n _this.onFocusDomElNeeded = function (domItem) {\n if (_this.allowExplicitFocus) {\n _this.focusDomItem(domItem);\n }\n };\n _this.onCheckChange = function (event, item, itemId) {\n _this.setFocus(itemId);\n _this.dispatchCheckChange(event, item, itemId);\n };\n _this.onExpandChange = function (event, item, itemId) {\n _this.setFocus(itemId);\n _this.dispatchExpandChange(event, item, itemId);\n };\n _this.onPress = function (event, item, itemId) {\n event.originalEvent.preventDefault();\n if (_this.props.onItemDragStart) {\n _this.props.onItemDragStart.call(undefined, { target: _this, item: item, itemHierarchicalIndex: itemId });\n }\n };\n _this.onDrag = function (event, item, itemId) {\n event.originalEvent.preventDefault();\n var pageX = event.pageX, pageY = event.pageY, clientX = event.clientX, clientY = event.clientY;\n if (_this.props.onItemDragOver) {\n _this.props.onItemDragOver.call(undefined, {\n target: _this,\n item: item,\n itemHierarchicalIndex: itemId,\n pageX: pageX,\n pageY: pageY,\n clientX: clientX,\n clientY: clientY\n });\n }\n };\n _this.onRelease = function (event, item, itemId) {\n var pageX = event.pageX, pageY = event.pageY, clientX = event.clientX, clientY = event.clientY;\n if (_this.props.onItemDragEnd) {\n _this.props.onItemDragEnd.call(undefined, {\n target: _this,\n item: item,\n itemHierarchicalIndex: itemId,\n pageX: pageX,\n pageY: pageY,\n clientX: clientX,\n clientY: clientY\n });\n }\n };\n _this.onItemClick = function (event, item, itemId) {\n _this.setFocus(itemId);\n _this.dispatchItemClick(event, item, itemId);\n };\n _this.onFocus = function () {\n clearTimeout(_this.blurRequest);\n if (_this.state.focusedItemId === undefined && _this.data.length) {\n _this.setFocus(_this.state.tabbableItemId);\n }\n };\n _this.onBlur = function () {\n clearTimeout(_this.blurRequest);\n _this.blurRequest = window.setTimeout(function () { return _this.setFocus(undefined); }, 0);\n };\n _this.onKeyDown = function (event) {\n var focusedItem = _this.getFocusedItem();\n if (focusedItem) {\n var newItemId = nav(focusedItem, _this.state.focusedItemId, _this.data, event.keyCode, _this.fieldsSvc);\n if (newItemId !== _this.state.focusedItemId) {\n // This disables the auto-scroll. The scroll is achieved via item focusing.\n event.preventDefault();\n _this.allowExplicitFocus = true;\n _this.setFocus(newItemId);\n }\n _this.dispatchEventsOnKeyDown(event, focusedItem);\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(TreeView.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n TreeView.prototype.render = function () {\n var _this = this;\n this.fieldsSvc = new FieldsService(this.props);\n return (React.createElement(\"div\", { className: 'k-widget k-treeview' + (this.props.className ? ' ' + this.props.className : ''), onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, role: \"tree\", \"aria-multiselectable\": this.ariaMultiSelectable ? true : undefined, \"aria-label\": this.props['aria-label'], \"aria-labelledby\": this.props['aria-labelledby'], ref: function (element) { return _this._element = element; }, tabIndex: this.props.tabIndex },\n React.createElement(\"ul\", { className: \"k-treeview-lines k-group\", role: \"group\" }, this.data.map(function (item, index) {\n return (React.createElement(TreeViewItem, { item: item, itemId: index.toString(), treeGuid: _this.treeGuid, animate: _this.props.animate, focusedItemId: _this.state.focusedItemId, tabbableItemId: _this.state.tabbableItemId, fieldsService: _this.fieldsSvc, itemUI: _this.props.item, checkboxes: _this.props.checkboxes, ariaMultiSelectable: _this.ariaMultiSelectable, onItemClick: _this.onItemClick, onFocusDomElNeeded: _this.onFocusDomElNeeded, draggable: _this.props.draggable, onPress: _this.onPress, onDrag: _this.onDrag, onRelease: _this.onRelease, expandIcons: _this.props.expandIcons, onExpandChange: _this.onExpandChange, onCheckChange: _this.onCheckChange, key: index }));\n }))));\n };\n /**\n * @hidden\n */\n TreeView.prototype.componentDidUpdate = function () {\n this.allowExplicitFocus = false;\n this.refocusDueToFocusIdField();\n };\n TreeView.prototype.dispatchEventsOnKeyDown = function (event, focusedItem) {\n var _this = this;\n // isEnabled is the most expensive op and that is why is left last.\n var isEnabled = function () {\n return isEnabledAndAllParentsEnabled(_this.state.focusedItemId, _this.data, _this.fieldsSvc);\n };\n if (event.keyCode === Keys.left && this.fieldsSvc.expanded(focusedItem) && isEnabled()) {\n this.dispatchExpandChange(event, focusedItem, this.state.focusedItemId);\n }\n else if (event.keyCode === Keys.right && !this.fieldsSvc.expanded(focusedItem) &&\n (this.fieldsSvc.hasChildren(focusedItem) || hasChildren(focusedItem, this.props.childrenField)) && isEnabled()) {\n this.dispatchExpandChange(event, focusedItem, this.state.focusedItemId);\n }\n else if (event.keyCode === Keys.enter && isEnabled()) {\n this.dispatchItemClick(event, focusedItem, this.state.focusedItemId);\n }\n else if (event.keyCode === Keys.space && isEnabled()) {\n // W/o preventDefault() long TreeViews gets incorrectly scrolled.\n event.preventDefault();\n this.dispatchCheckChange(event, focusedItem, this.state.focusedItemId);\n }\n };\n TreeView.prototype.setFocus = function (focusedItemId) {\n if (focusedItemId) {\n if (this.fieldsSvc.focusIdField) {\n var item = this.getItemById(focusedItemId);\n this.setState({ focusedItemId: focusedItemId, focusedItemPublicId: this.fieldsSvc.focusId(item) });\n }\n else {\n this.setState({ focusedItemId: focusedItemId });\n }\n }\n else {\n this.setState(function (state) {\n return {\n focusedItemId: undefined,\n focusedItemPublicId: undefined,\n tabbableItemId: state.focusedItemId\n };\n });\n }\n };\n TreeView.prototype.getFocusedItem = function () {\n return this.state.focusedItemId ? this.getItemById(this.state.focusedItemId) : undefined;\n };\n TreeView.prototype.getItemById = function (itemId) {\n return getItemById(itemId, this.data, this.props.childrenField || CHILDREN_FIELD);\n };\n TreeView.prototype.dispatchCheckChange = function (dispatchedEvent, item, itemId) {\n dispatchEvent(this.props.onCheckChange, dispatchedEvent, this, { item: item, itemHierarchicalIndex: itemId });\n };\n TreeView.prototype.dispatchExpandChange = function (dispatchedEvent, item, itemId) {\n dispatchEvent(this.props.onExpandChange, dispatchedEvent, this, { item: item, itemHierarchicalIndex: itemId });\n };\n TreeView.prototype.dispatchItemClick = function (dispatchedEvent, item, itemId) {\n dispatchEvent(this.props.onItemClick, dispatchedEvent, this, { item: item, itemHierarchicalIndex: itemId });\n };\n TreeView.prototype.refocusDueToFocusIdField = function () {\n if (this.fieldsSvc.focusIdField) {\n var focusedItemPublicId = this.state.focusedItemPublicId;\n if (focusedItemPublicId) {\n var focusedItemId = this.props.getFocusHierarchicalIndex ?\n this.props.getFocusHierarchicalIndex(focusedItemPublicId) :\n resolveItemId(focusedItemPublicId, this.fieldsSvc.focusIdField, this.data, this.props.childrenField);\n if (focusedItemId !== this.state.focusedItemId) {\n this.allowExplicitFocus = true;\n this.setState({ focusedItemId: focusedItemId });\n }\n }\n }\n };\n Object.defineProperty(TreeView.prototype, \"ariaMultiSelectable\", {\n get: function () {\n return this.props['aria-multiselectable'] === true || this.props['aria-multiselectable'] === 'true';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TreeView.prototype, \"data\", {\n get: function () {\n return this.props.data || [];\n },\n enumerable: true,\n configurable: true\n });\n TreeView.prototype.focusDomItem = function (domItem) {\n domItem.focus();\n };\n Object.defineProperty(TreeView.prototype, \"guid\", {\n /**\n * Returns the `guid` which is associated with the TreeView.\n */\n get: function () {\n return this.treeGuid;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n TreeView.propTypes = {\n data: PropTypes.arrayOf(PropTypes.any),\n animate: PropTypes.bool,\n tabIndex: PropTypes.number,\n focusIdField: PropTypes.string,\n getHierarchicalIndexById: PropTypes.func,\n onExpandChange: PropTypes.func,\n onItemClick: PropTypes.func,\n expandField: PropTypes.string,\n selectField: PropTypes.string,\n childrenField: PropTypes.string,\n hasChildrenField: PropTypes.string,\n textField: PropTypes.string,\n disableField: PropTypes.string,\n item: PropTypes.any,\n 'aria-multiselectable': function (props, propName, componentName) {\n if (props[propName] !== undefined\n && props[propName] !== true\n && props[propName] !== false\n && props[propName] !== 'true'\n && props[propName] !== 'false') {\n return new Error('Invalid prop `' + propName + '` supplied to' +\n ' `' + componentName + '`. Validation failed.');\n }\n return null;\n },\n 'aria-label': PropTypes.string,\n 'aria-labelledby': PropTypes.string\n };\n /**\n * @hidden\n */\n TreeView.defaultProps = {\n animate: true,\n expandField: EXPAND_FIELD,\n selectField: SELECT_FIELD,\n hasChildrenField: HAS_CHILDREN_FIELD,\n childrenField: CHILDREN_FIELD,\n textField: TEXT_FIELD,\n disableField: DISABLED_FIELD,\n checkField: CHECK_FIELD,\n checkIndeterminateField: CHECK_INDETERMINATE_FIELD\n };\n return TreeView;\n}(React.Component));\nexport default TreeView;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * Represents the KendoReact TreeViewDragClue component which renders a clue when an item is dragged.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * dragClue;\n * state = { tree };\n *\n * render() {\n * return (\n *
    \n * \n * this.dragClue = dragClue} />\n *
    \n * );\n * }\n *\n * onItemDragOver = (event) => {\n * this.dragClue.show(event.pageY + 10, event.pageX, event.item.text, this.getClueClassName(event));\n * }\n * onItemDragEnd = (event) => {\n * this.dragClue.hide();\n * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();\n *\n * if (eventAnalyzer.isDropAllowed) {\n * const updatedTree = moveTreeViewItem(\n * event.itemHierarchicalIndex,\n * this.state.tree,\n * eventAnalyzer.getDropOperation(),\n * eventAnalyzer.destinationMeta.itemHierarchicalIndex,\n * );\n *\n * this.setState({ tree: updatedTree });\n * }\n * }\n * getClueClassName(event) {\n * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();\n * const itemIndex = eventAnalyzer.destinationMeta.itemHierarchicalIndex;\n *\n * if (eventAnalyzer.isDropAllowed) {\n * switch (eventAnalyzer.getDropOperation()) {\n * case 'child':\n * return 'k-i-plus';\n * case 'before':\n * return itemIndex === '0' || itemIndex.endsWith(`${SEPARATOR}0`) ?\n * 'k-i-insert-up' : 'k-i-insert-middle';\n * case 'after':\n * const siblings = getSiblings(itemIndex, this.state.tree);\n * const lastIndex = Number(itemIndex.split(SEPARATOR).pop());\n *\n * return lastIndex < siblings.length - 1 ? 'k-i-insert-middle' : 'k-i-insert-down';\n * default:\n * break;\n * }\n * }\n *\n * return 'k-i-cancel';\n * }\n * }\n *\n * function getSiblings(itemIndex, data) {\n * let result = data;\n *\n * const indices = itemIndex.split(SEPARATOR).map(index => Number(index));\n * for (let i = 0; i < indices.length - 1; i++) {\n * result = result[indices[i]].items;\n * }\n *\n * return result;\n * }\n *\n * const SEPARATOR = '_';\n * const tree = [{\n * text: 'Furniture', expanded: true, items: [\n * { text: 'Tables & Chairs', expanded: true },\n * { text: 'Sofas', expanded: true },\n * { text: 'Occasional Furniture', expanded: true }]\n * }, {\n * text: 'Decor', expanded: true, items: [\n * { text: 'Bed Linen', expanded: true },\n * { text: 'Curtains & Blinds', expanded: true },\n * { text: 'Carpets', expanded: true }]\n * }];\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar TreeViewDragClue = /** @class */ (function (_super) {\n __extends(TreeViewDragClue, _super);\n function TreeViewDragClue() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.state = {\n visible: false,\n top: 0,\n left: 0,\n text: '',\n operationClassName: 'k-i-cancel'\n };\n return _this;\n }\n /**\n * @hidden\n */\n TreeViewDragClue.prototype.render = function () {\n var dynamicStyle = { top: this.state.top + 'px', left: this.state.left + 'px' };\n return this.state.visible && (React.createElement(\"div\", { className: \"k-header k-drag-clue\", style: __assign({}, this.props.style, dynamicStyle) },\n React.createElement(\"span\", { className: classNames('k-icon k-drag-status k-icon-with-modifier', this.state.operationClassName) },\n React.createElement(\"span\", { className: \"k-icon k-icon-modifier\" })),\n this.state.text));\n };\n /**\n * Displays the TreeViewDragClue component.\n *\n * @param top - The `top` CSS position of the component.\n * @param left - The `left` CSS position of the component.\n * @param text - The text of the component.\n * @param operationClassName - The CSS class name which is related to the specific drop operation.\n */\n TreeViewDragClue.prototype.show = function (top, left, text, operationClassName) {\n this.setState({ visible: true, top: top, left: left, text: text, operationClassName: operationClassName });\n };\n /**\n * Hides the TreeViewDragClue component.\n */\n TreeViewDragClue.prototype.hide = function () {\n this.setState({ visible: false });\n };\n /**\n * @hidden\n */\n TreeViewDragClue.defaultProps = { style: { display: 'block', position: 'absolute', zIndex: 20000, padding: '4px 6px' } };\n return TreeViewDragClue;\n}(React.PureComponent));\nexport default TreeViewDragClue;\n","import { DOM_KENDO_ITEM_ID_FIELD, DOM_KENDO_TREEVIEW_GUID_FIELD } from './utils/consts';\nvar DROPZONE_BOUNDARY_DELTA = 6;\n/**\n * A class which provides an API for analyzing the `drag` events\n * of the TreeView.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * dragClue;\n * state = { tree };\n *\n * render() {\n * return (\n *
    \n * \n * this.dragClue = dragClue} />\n *
    \n * );\n * }\n *\n * onItemDragOver = (event) => {\n * this.dragClue.show(event.pageY + 10, event.pageX, event.item.text, this.getClueClassName(event));\n * }\n * onItemDragEnd = (event) => {\n * this.dragClue.hide();\n * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();\n *\n * if (eventAnalyzer.isDropAllowed) {\n * const updatedTree = moveTreeViewItem(\n * event.itemHierarchicalIndex,\n * this.state.tree,\n * eventAnalyzer.getDropOperation(),\n * eventAnalyzer.destinationMeta.itemHierarchicalIndex,\n * );\n *\n * this.setState({ tree: updatedTree });\n * }\n * }\n * getClueClassName(event) {\n * const eventAnalyzer = new TreeViewDragAnalyzer(event).init();\n * const itemIndex = eventAnalyzer.destinationMeta.itemHierarchicalIndex;\n *\n * if (eventAnalyzer.isDropAllowed) {\n * switch (eventAnalyzer.getDropOperation()) {\n * case 'child':\n * return 'k-i-plus';\n * case 'before':\n * return itemIndex === '0' || itemIndex.endsWith(`${SEPARATOR}0`) ?\n * 'k-i-insert-up' : 'k-i-insert-middle';\n * case 'after':\n * const siblings = getSiblings(itemIndex, this.state.tree);\n * const lastIndex = Number(itemIndex.split(SEPARATOR).pop());\n *\n * return lastIndex < siblings.length - 1 ? 'k-i-insert-middle' : 'k-i-insert-down';\n * default:\n * break;\n * }\n * }\n *\n * return 'k-i-cancel';\n * }\n * }\n *\n * function getSiblings(itemIndex, data) {\n * let result = data;\n *\n * const indices = itemIndex.split(SEPARATOR).map(index => Number(index));\n * for (let i = 0; i < indices.length - 1; i++) {\n * result = result[indices[i]].items;\n * }\n *\n * return result;\n * }\n *\n * const SEPARATOR = '_';\n * const tree = [{\n * text: 'Furniture', expanded: true, items: [\n * { text: 'Tables & Chairs', expanded: true },\n * { text: 'Sofas', expanded: true },\n * { text: 'Occasional Furniture', expanded: true }]\n * }, {\n * text: 'Decor', expanded: true, items: [\n * { text: 'Bed Linen', expanded: true },\n * { text: 'Curtains & Blinds', expanded: true },\n * { text: 'Carpets', expanded: true }]\n * }];\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar TreeViewDragAnalyzer = /** @class */ (function () {\n /**\n * @param event - The event that will be analyzed.\n */\n function TreeViewDragAnalyzer(event) {\n this.event = event;\n this.initialized = false;\n this.itemId = event.itemHierarchicalIndex;\n this.treeViewGuid = event.target.guid;\n }\n /**\n * The method which initializes the analyzer.\n * Invoke the method before you call any other methods.\n *\n * @returns - The analyzer object of the `drag` event.\n */\n TreeViewDragAnalyzer.prototype.init = function () {\n if (!this.initialized) {\n this.setDestimationMeta(document.elementFromPoint(this.event.clientX, this.event.clientY));\n this.initialized = true;\n }\n return this;\n };\n Object.defineProperty(TreeViewDragAnalyzer.prototype, \"isDropAllowed\", {\n /**\n * Returns `true` if dropping is allowed. Otherwise, returns `false`.\n */\n get: function () {\n if (this.initialized && this.destItemId && this.destTreeViewGuid) {\n // Disallow circular references.\n return !((this.destTreeViewGuid + \"_\" + this.destItemId + \"_\").\n startsWith(this.treeViewGuid + \"_\" + this.itemId + \"_\"));\n }\n else {\n return false;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TreeViewDragAnalyzer.prototype, \"destinationMeta\", {\n /**\n * Returns an object which contains:\n * * The `itemHierarchicalIndex` of the destination item (the item below the dragged item) and\n * * The `guid` of the destination TreeView (the TreeView which renders the destination item).\n */\n get: function () {\n return { itemHierarchicalIndex: this.destItemId, treeViewGuid: this.destTreeViewGuid };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the specific drop operation.\n *\n * @returns - The following values are returned:\n * * `before`—Indicates that the dragged item is positioned at the beginning of the destination item.\n * * `after`—Indicates that the dragged item is positioned at the end of the destination item.\n * * `child`—Indicates that the dragged item is positioned in the middle of the destination item.\n * * `undefined`—Indicates that dropping is not allowed.\n */\n TreeViewDragAnalyzer.prototype.getDropOperation = function () {\n if (this.initialized && this.isDropAllowed) {\n var _a = this.destDomNodeWithMeta.getBoundingClientRect(), top_1 = _a.top, height = _a.height;\n if (top_1 + height - this.event.clientY < DROPZONE_BOUNDARY_DELTA) {\n return 'after';\n }\n else if (this.event.clientY - top_1 < DROPZONE_BOUNDARY_DELTA) {\n return 'before';\n }\n else {\n return 'child';\n }\n }\n else {\n return undefined;\n }\n };\n TreeViewDragAnalyzer.prototype.setDestimationMeta = function (element) {\n var node = element;\n while (node && !node[DOM_KENDO_ITEM_ID_FIELD]) {\n node = node.parentNode;\n }\n if (node && node[DOM_KENDO_ITEM_ID_FIELD]) {\n this.destDomNodeWithMeta = node;\n this.destItemId = node[DOM_KENDO_ITEM_ID_FIELD];\n this.destTreeViewGuid = node[DOM_KENDO_TREEVIEW_GUID_FIELD];\n }\n };\n return TreeViewDragAnalyzer;\n}());\nexport default TreeViewDragAnalyzer;\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport function useDropdownWidth(elementRef, initialStyleWidth, args) {\n var _a = React.useState(initialStyleWidth), width = _a[0], setWidth = _a[1];\n React.useEffect(function () {\n if (width !== undefined && elementRef.current) {\n setWidth(elementRef.current.offsetWidth);\n }\n }, args);\n return width;\n}\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var ListNoData = function (props) {\n return React.createElement(\"div\", { className: \"k-nodata\" },\n React.createElement(\"div\", null, props.children));\n};\n","var __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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, noop, useRtl, getTabIndex, Keys, mapTree, extendDataItem, guid } from '@progress/kendo-react-common';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { TreeView } from '@progress/kendo-react-treeview';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './../package-metadata';\nimport { getItemValue, areSame, isPresent } from '../common/utils';\nimport { useDropdownWidth } from './useDropdownWidth';\nimport { ListNoData } from './ListNoData';\nimport { messages, clear, nodata } from './../messages';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nvar VALIDATION_MESSAGE = 'Please select a value from the list!';\nvar ValueHolder = function (props) { return React.createElement(React.Fragment, null, props.children); };\nvar toLevel = function (hierarchicalIndex) {\n return hierarchicalIndex.split('_').map(function (i) { return parseInt(i, 10); });\n};\nvar getValidity = function (_a, hasValue) {\n var validationMessage = _a.validationMessage, valid = _a.valid, required = _a.required;\n return ({\n customError: validationMessage !== undefined,\n valid: Boolean(valid !== undefined ? valid : (!required || hasValue)),\n valueMissing: !hasValue\n });\n};\nvar defaultProps = {\n selectField: 'selected',\n subItemsField: 'items',\n popupSettings: {\n animate: true,\n width: '200px',\n height: '200px'\n },\n required: false,\n validityStyles: true\n};\n/**\n * Represents the DropDownTree component.\n */\nexport var DropDownTree = React.forwardRef(function (props, ref) {\n validatePackage(packageMetadata);\n var calculatedId = React.useMemo(function () { return guid(); }, []);\n var id = props.id || calculatedId;\n var _a = props.data, data = _a === void 0 ? [] : _a, dataItemKey = props.dataItemKey, _b = props.popupSettings, popupSettings = _b === void 0 ? {} : _b, _c = props.style, style = _c === void 0 ? {} : _c, opened = props.opened, disabled = props.disabled, _d = props.onOpen, onOpen = _d === void 0 ? noop : _d, _e = props.onClose, onClose = _e === void 0 ? noop : _e, placeholder = props.placeholder, label = props.label, name = props.name, _f = props.selectField, selectField = _f === void 0 ? defaultProps.selectField : _f, _g = props.subItemsField, subItemsField = _g === void 0 ? defaultProps.subItemsField : _g, validationMessage = props.validationMessage, valid = props.valid, _h = props.required, required = _h === void 0 ? defaultProps.required : _h, _j = props.validityStyles, validityStyles = _j === void 0 ? defaultProps.validityStyles : _j;\n var tabIndex = getTabIndex(props.tabIndex, disabled);\n var target = React.useRef(null);\n var elementRef = React.useRef(null);\n var inputRef = React.useRef(null);\n var selectRef = React.useRef(null);\n var treeViewRef = React.useRef(null);\n var skipFocusRef = React.useRef(false);\n var _k = React.useState(undefined), stateValue = _k[0], setStateValue = _k[1];\n var controlled = props.value !== undefined;\n var value = controlled ? props.value : (stateValue !== undefined ? stateValue : props.defaultValue);\n var hasValue = isPresent(value);\n var currentValueText = hasValue ? getItemValue(value, props.textField) : '';\n var validity = getValidity({ validationMessage: validationMessage, valid: valid, required: required }, hasValue);\n var focus = React.useCallback(function () { return elementRef.current && elementRef.current.focus(); }, []);\n React.useImperativeHandle(target, function () { return ({\n props: props,\n element: elementRef.current,\n actionElement: elementRef.current,\n focus: focus\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var dir = useRtl(elementRef, props.dir);\n var initialStyleWidth = popupSettings.width !== undefined ?\n popupSettings.width : (style.width !== undefined ? style.width : defaultProps.popupSettings.width);\n var popupWidth = useDropdownWidth(elementRef, initialStyleWidth);\n var popupStyles = __assign({ width: popupWidth }, (dir !== undefined ? { direction: dir } : {}));\n var _l = React.useState(false), open = _l[0], setOpen = _l[1];\n var isOpen = opened !== undefined ? opened : open;\n var _m = React.useState(false), focused = _m[0], setFocused = _m[1];\n var _o = React.useState(''), filter = _o[0], setFilter = _o[1];\n var setValidity = React.useCallback(function () {\n if (selectRef.current && selectRef.current.setCustomValidity) {\n selectRef.current.setCustomValidity(validity.valid\n ? ''\n : validationMessage === undefined ? VALIDATION_MESSAGE : validationMessage);\n }\n }, [validationMessage, validity]);\n React.useEffect(setValidity);\n var openPopup = React.useCallback(function (event) {\n if (!isOpen) {\n if (onOpen) {\n var openEvent = __assign({}, event);\n onOpen.call(undefined, openEvent);\n }\n if (opened === undefined) {\n setOpen(true);\n }\n }\n }, [isOpen, opened, onOpen]);\n var closePopup = React.useCallback(function (event) {\n if (isOpen) {\n if (onClose) {\n var closeEvent = __assign({}, event);\n onClose.call(undefined, closeEvent);\n }\n if (opened === undefined) {\n setOpen(false);\n }\n }\n }, [isOpen, opened, onClose]);\n var onWrapperClick = React.useCallback(function (event) {\n if (!event.isDefaultPrevented() && target.current) {\n setFocused(true);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n (isOpen ? closePopup : openPopup)(ev);\n }\n }, [isOpen, opened, onOpen, onClose]);\n var switchFocus = React.useCallback(function (focusFn) {\n skipFocusRef.current = true;\n focusFn();\n window.setTimeout(function () { return skipFocusRef.current = false; }, 0);\n }, []);\n var onWrapperKeyDown = React.useCallback(function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n var treeview = treeViewRef.current && treeViewRef.current.element;\n if (!target.current || (event.isDefaultPrevented() && inputRef.current === event.target)) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n if (isOpen) {\n if (keyCode === Keys.esc || (altKey && keyCode === Keys.up)) {\n closePopup(ev);\n }\n else if (treeview && treeview.querySelector('.k-state-focused') &&\n (keyCode === Keys.up || keyCode === Keys.down ||\n keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end)) {\n if (keyCode === Keys.up && inputRef.current) {\n var items = Array.from(treeview.querySelectorAll('.k-treeview-item'));\n var focusedItem = items.slice().reverse().find(function (i) { return Boolean(i && i.querySelector('.k-state-focused')); });\n if (focusedItem && items.indexOf(focusedItem) === 0) {\n return switchFocus(function () { focusElement(inputRef.current); });\n }\n }\n switchFocus(noop);\n }\n else if (keyCode === Keys.down) {\n switchFocus(function () { focusElement(inputRef.current || treeview); });\n }\n }\n else {\n if (altKey && keyCode === Keys.down) {\n openPopup(ev);\n }\n }\n }, [isOpen, opened, onOpen, onClose]);\n var onInputKeyDown = React.useCallback(function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n if (altKey || (keyCode !== Keys.up && keyCode !== Keys.down)) {\n return;\n }\n event.preventDefault();\n switchFocus(keyCode === Keys.up ?\n function () { focusElement(elementRef.current); } :\n function () { focusElement(treeViewRef.current && treeViewRef.current.element); });\n }, []);\n var focusElement = React.useCallback(function (element) {\n if (element) {\n switchFocus(function () { return element.focus(); });\n }\n }, []);\n var onPopupOpened = React.useCallback(function () {\n if (!focused && isOpen) {\n closePopup({ target: target.current });\n }\n else {\n if (props.filterable) {\n focusElement(inputRef.current);\n }\n else {\n focusElement(treeViewRef.current && treeViewRef.current.element);\n }\n }\n }, [onClose, props.filterable, focused, opened, isOpen]);\n var onPopupClosed = React.useCallback(function () {\n if (focused) {\n // Move the focus from treeview to dropdown without triggering Focus or Blur events.\n focusElement(elementRef.current);\n }\n }, [focused]);\n var onFocus = React.useCallback(function (event) {\n if (!focused && !skipFocusRef.current) {\n setFocused(true);\n if (props.onFocus && target.current) {\n var focusEvent = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n props.onFocus.call(undefined, focusEvent);\n }\n }\n }, [focused, props.onFocus]);\n var onBlur = React.useCallback(function (event) {\n if (focused && !skipFocusRef.current && target.current) {\n setFocused(false);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n if (props.onBlur) {\n var focusEvent = __assign({}, ev);\n props.onBlur.call(undefined, focusEvent);\n }\n closePopup(ev);\n }\n }, [focused, props.onBlur, isOpen, opened, onClose]);\n var onWrapperMouseDown = React.useCallback(function () {\n if (focused) {\n // moving focus from treeview to dropdown triggers Focus and Blur events.\n switchFocus(noop);\n }\n }, [focused]);\n var changeValue = React.useCallback(function (event, newValue, hierarchicalIndex) {\n if (props.onChange) {\n var changeEvent = __assign({ value: newValue, level: hierarchicalIndex ? toLevel(hierarchicalIndex) : [] }, event);\n props.onChange.call(undefined, changeEvent);\n }\n if (!controlled) {\n setStateValue(newValue);\n }\n }, [props.onChange, controlled]);\n var onChange = React.useCallback(function (event) {\n if (areSame(event.item, value, dataItemKey) || !target.current) {\n return;\n }\n var item = event.item, itemHierarchicalIndex = event.itemHierarchicalIndex, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var ev = {\n syntheticEvent: syntheticEvent,\n nativeEvent: nativeEvent,\n target: target.current\n };\n changeValue(ev, item, itemHierarchicalIndex);\n closePopup(ev);\n }, [controlled, value, props.onChange, dataItemKey, isOpen, opened, onClose]);\n var onClear = React.useCallback(function (event) {\n if (!target.current) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n changeValue(ev, null);\n closePopup(ev);\n event.preventDefault();\n }, [controlled, props.onChange, isOpen, opened, onClose]);\n var onExpand = React.useCallback(function (event) {\n if (props.onExpandChange && target.current) {\n var item = event.item, itemHierarchicalIndex = event.itemHierarchicalIndex, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var expandEvent = {\n level: toLevel(itemHierarchicalIndex),\n item: item, nativeEvent: nativeEvent, syntheticEvent: syntheticEvent, target: target.current\n };\n props.onExpandChange.call(undefined, expandEvent);\n }\n }, [props.onExpandChange]);\n var onFilterChange = React.useCallback(function (event) {\n if (props.onFilterChange && target.current) {\n var filterDesc = { field: props.textField, operator: 'contains', value: event.target.value };\n var ev = {\n filter: filterDesc,\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: target.current\n };\n props.onFilterChange.call(undefined, ev);\n if (props.filter === undefined) {\n setFilter(event.target.value);\n }\n }\n }, [props.onFilterChange, props.filter, props.textField]);\n var treeViewData = React.useMemo(function () {\n return (controlled || !hasValue) ? data :\n mapTree(data, subItemsField, function (item) {\n var _a;\n return extendDataItem(item, subItemsField, (_a = {}, _a[selectField] = areSame(item, value, dataItemKey), _a));\n });\n }, [data, value, controlled, hasValue, selectField, subItemsField]);\n var NoData = props.listNoData || ListNoData;\n var ValueComponent = props.valueHolder || ValueHolder;\n var localization = useLocalization();\n var isValid = !validityStyles || validity.valid;\n var dropdowntree = (React.createElement(\"span\", { className: classNames('k-widget k-dropdowntree k-dropdowntree-clearable', props.className), tabIndex: tabIndex, accessKey: props.accessKey, id: id, style: label ? __assign({}, style, { width: undefined }) : style, dir: dir, ref: elementRef, onKeyDown: disabled ? undefined : onWrapperKeyDown, onMouseDown: onWrapperMouseDown, onFocus: onFocus, onBlur: onBlur, role: \"listbox\", \"aria-haspopup\": \"true\", \"aria-expanded\": isOpen, \"aria-disabled\": disabled, \"aria-label\": label, \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy },\n React.createElement(\"span\", { className: classNames('k-dropdown-wrap', {\n 'k-state-focused': focused,\n 'k-state-disabled': disabled,\n 'k-state-invalid': !isValid\n }), onClick: disabled ? undefined : onWrapperClick },\n React.createElement(\"span\", { className: \"k-input\" },\n React.createElement(ValueComponent, { item: value }, currentValueText || placeholder)),\n hasValue && !disabled && (React.createElement(\"span\", { onClick: onClear, className: \"k-icon k-clear-value k-i-close\", title: localization.toLanguageString(clear, messages[clear]), role: \"button\", tabIndex: -1, onMouseDown: function (e) { return e.preventDefault(); } })),\n React.createElement(\"span\", { className: \"k-select\", \"aria-label\": \"select\" },\n React.createElement(\"span\", { className: classNames('k-icon', { 'k-i-arrow-60-down': !props.loading, 'k-i-loading': props.loading }) })),\n React.createElement(\"select\", { name: name, ref: selectRef, tabIndex: -1, \"aria-hidden\": true, title: label, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' } },\n React.createElement(\"option\", { value: props.valueMap ? props.valueMap.call(undefined, value) : value }))),\n React.createElement(Popup, { className: classNames('k-list-container k-group k-reset k-popup-dropdowntree', popupSettings.className, { 'k-rtl': dir === 'rtl' }), popupClass: popupSettings.popupClass, style: popupStyles, animate: popupSettings.animate, anchor: elementRef.current, show: isOpen, onOpen: onPopupOpened, onClose: onPopupClosed, appendTo: popupSettings.appendTo },\n props.filterable && (React.createElement(\"span\", { className: \"k-list-filter\" },\n React.createElement(\"input\", { className: \"k-textbox\", tabIndex: tabIndex, ref: inputRef, value: props.filter === undefined ? filter : props.filter, onChange: onFilterChange, onKeyDown: onInputKeyDown }),\n React.createElement(\"span\", { className: \"k-icon k-i-zoom\" }))),\n data.length > 0 ? (React.createElement(TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: treeViewData, focusIdField: dataItemKey, textField: props.textField, selectField: selectField, expandField: props.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onExpandChange: onExpand, item: props.item })) : (React.createElement(NoData, null, localization.toLanguageString(nodata, messages[nodata]))))));\n return label ? (React.createElement(FloatingLabel, { label: label, editorValue: currentValueText, editorPlaceholder: placeholder, editorValid: isValid, editorDisabled: disabled, editorId: id, style: { width: style ? style.width : undefined }, children: dropdowntree, dir: dir })) : dropdowntree;\n});\nvar propTypes = {\n opened: PropTypes.bool,\n disabled: PropTypes.bool,\n dir: PropTypes.string,\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n data: PropTypes.array,\n value: PropTypes.any,\n valueMap: PropTypes.func,\n placeholder: PropTypes.string,\n dataItemKey: PropTypes.string.isRequired,\n textField: PropTypes.string.isRequired,\n selectField: PropTypes.string,\n expandField: PropTypes.string,\n subItemsField: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n label: PropTypes.string,\n validationMessage: PropTypes.string,\n validityStyles: PropTypes.bool,\n valid: PropTypes.bool,\n required: PropTypes.bool,\n name: PropTypes.string,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n filterable: PropTypes.bool,\n filter: PropTypes.string,\n loading: PropTypes.bool,\n popupSettings: PropTypes.shape({\n animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })]),\n popupClass: PropTypes.string,\n className: PropTypes.string,\n appendTo: PropTypes.any,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFilterChange: PropTypes.func,\n onExpandChange: PropTypes.func,\n item: PropTypes.func,\n valueHolder: PropTypes.func,\n listNoData: PropTypes.func\n};\nDropDownTree.displayName = 'KendoReactDropDownTree';\nDropDownTree.propTypes = propTypes;\n","var __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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, noop, useRtl, getTabIndex, Keys, guid } from '@progress/kendo-react-common';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { TreeView } from '@progress/kendo-react-treeview';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './../package-metadata';\nimport { getItemValue, areSame, matchTags } from '../common/utils';\nimport { useDropdownWidth } from './../DropDownTree/useDropdownWidth';\nimport { ListNoData } from './../DropDownTree/ListNoData';\nimport { messages, clear, nodata } from './../messages';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport TagList from '../MultiSelect/TagList';\nvar VALIDATION_MESSAGE = 'Please select a value from the list!';\nvar toLevel = function (hierarchicalIndex) {\n return hierarchicalIndex.split('_').map(function (i) { return parseInt(i, 10); });\n};\nvar getValidity = function (_a, hasValue) {\n var validationMessage = _a.validationMessage, valid = _a.valid, required = _a.required;\n return ({\n customError: validationMessage !== undefined,\n valid: Boolean(valid !== undefined ? valid : (!required || hasValue)),\n valueMissing: !hasValue\n });\n};\nvar defaultProps = {\n checkField: 'checkField',\n checkIndeterminateField: 'checkIndeterminateField',\n subItemsField: 'items',\n popupSettings: {\n animate: true,\n width: '200px',\n height: '200px'\n },\n required: false,\n validityStyles: true\n};\n/**\n * Represents the MultiSelectTree component.\n */\nexport var MultiSelectTree = React.forwardRef(function (props, ref) {\n validatePackage(packageMetadata);\n var componentGuid = React.useMemo(function () { return guid(); }, []);\n var id = props.id || componentGuid;\n var _a = props.data, data = _a === void 0 ? [] : _a, dataItemKey = props.dataItemKey, _b = props.popupSettings, popupSettings = _b === void 0 ? {} : _b, _c = props.style, style = _c === void 0 ? {} : _c, opened = props.opened, disabled = props.disabled, _d = props.onOpen, onOpen = _d === void 0 ? noop : _d, _e = props.onClose, onClose = _e === void 0 ? noop : _e, placeholder = props.placeholder, label = props.label, name = props.name, _f = props.checkField, checkField = _f === void 0 ? defaultProps.checkField : _f, _g = props.checkIndeterminateField, checkIndeterminateField = _g === void 0 ? defaultProps.checkIndeterminateField : _g, _h = props.subItemsField, subItemsField = _h === void 0 ? defaultProps.subItemsField : _h, validationMessage = props.validationMessage, valid = props.valid, tags = props.tags, value = props.value, _j = props.required, required = _j === void 0 ? defaultProps.required : _j, _k = props.validityStyles, validityStyles = _k === void 0 ? defaultProps.validityStyles : _k;\n var tabIndex = getTabIndex(props.tabIndex, disabled);\n var targetRef = React.useRef(null);\n var elementRef = React.useRef(null);\n var inputRef = React.useRef(null);\n var selectRef = React.useRef(null);\n var treeViewRef = React.useRef(null);\n var skipFocusRef = React.useRef(false);\n var tagsToRenderRef = React.useRef([]);\n var popupRef = React.useRef(null);\n var _l = React.useState(), focusedTagState = _l[0], setFocusedTagState = _l[1];\n var _m = React.useState(false), openState = _m[0], setOpenState = _m[1];\n var _o = React.useState(false), focusedState = _o[0], setFocusedState = _o[1];\n var _p = React.useState(''), filterState = _p[0], setFilterState = _p[1];\n var isOpen = opened !== undefined ? opened : openState;\n var hasValue = Boolean(Array.isArray(value) && value.length);\n var validity = getValidity({ validationMessage: validationMessage, valid: valid, required: required }, hasValue);\n var dir = useRtl(elementRef, props.dir);\n var initialStyleWidth = popupSettings.width !== undefined ?\n popupSettings.width : (style.width !== undefined ? style.width : defaultProps.popupSettings.width);\n var popupWidth = useDropdownWidth(elementRef, initialStyleWidth);\n var popupStyles = __assign({ width: popupWidth }, (dir !== undefined ? { direction: dir } : {}));\n var focus = React.useCallback(function () { return elementRef.current && elementRef.current.focus(); }, []);\n tagsToRenderRef.current = tags === undefined ?\n (value || []).map(function (item) { return ({ text: getItemValue(item, props.textField), data: [item] }); }) : tags.slice();\n React.useImperativeHandle(targetRef, function () { return ({\n props: props,\n element: elementRef.current,\n actionElement: elementRef.current,\n focus: focus\n }); });\n React.useImperativeHandle(ref, function () { return targetRef.current; });\n var setValidity = React.useCallback(function () {\n if (selectRef.current && selectRef.current.setCustomValidity) {\n selectRef.current.setCustomValidity(validity.valid\n ? ''\n : validationMessage === undefined ? VALIDATION_MESSAGE : validationMessage);\n }\n }, [validationMessage, validity]);\n React.useEffect(setValidity);\n React.useEffect(function () {\n if (popupRef.current && isOpen) {\n popupRef.current.setPosition(popupRef.current._popup);\n }\n }, [value, isOpen]);\n var changeValue = React.useCallback(function (event, relatedItems, operation) {\n if (props.onChange) {\n var changeEvent = __assign({ items: relatedItems, operation: operation }, event);\n props.onChange.call(undefined, changeEvent);\n }\n }, [props.onChange]);\n var onChange = React.useCallback(function (event) {\n if (areSame(event.item, value, dataItemKey) || !targetRef.current) {\n return;\n }\n var item = event.item, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var ev = {\n syntheticEvent: syntheticEvent,\n nativeEvent: nativeEvent,\n target: targetRef.current\n };\n changeValue(ev, [item], 'toggle');\n }, [value, dataItemKey, changeValue]);\n var openPopup = React.useCallback(function (event) {\n if (!isOpen) {\n if (onOpen) {\n var openEvent = __assign({}, event);\n onOpen.call(undefined, openEvent);\n }\n if (opened === undefined) {\n setOpenState(true);\n }\n }\n }, [isOpen, opened, onOpen]);\n var closePopup = React.useCallback(function (event) {\n if (isOpen) {\n if (onClose) {\n var closeEvent = __assign({}, event);\n onClose.call(undefined, closeEvent);\n }\n if (opened === undefined) {\n setOpenState(false);\n }\n }\n }, [isOpen, opened, onClose]);\n var switchFocus = React.useCallback(function (focusFn) {\n skipFocusRef.current = true;\n focusFn();\n window.setTimeout(function () { return skipFocusRef.current = false; }, 0);\n }, []);\n var focusElement = React.useCallback(function (element) {\n if (element) {\n switchFocus(function () { return element.focus(); });\n }\n }, [switchFocus]);\n var onPopupOpened = React.useCallback(function () {\n if (!focusedState && isOpen) {\n closePopup({ target: targetRef.current });\n }\n else {\n if (props.filterable) {\n focusElement(inputRef.current);\n }\n else {\n focusElement(treeViewRef.current && treeViewRef.current.element);\n }\n }\n }, [focusedState, isOpen, focusElement, closePopup, props.filterable]);\n var onPopupClosed = React.useCallback(function () {\n if (focusedState) {\n // Move the focus from treeview to dropdown without triggering Focus or Blur events.\n focusElement(elementRef.current);\n }\n }, [focusedState, focusElement]);\n var onFocus = React.useCallback(function (event) {\n if (!focusedState && !skipFocusRef.current) {\n setFocusedState(true);\n if (props.onFocus && targetRef.current) {\n var focusEvent = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n props.onFocus.call(undefined, focusEvent);\n }\n }\n }, [focusedState, props.onFocus]);\n var onBlur = React.useCallback(function (event) {\n if (focusedState && !skipFocusRef.current && targetRef.current) {\n setFocusedState(false);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n if (props.onBlur) {\n var focusEvent = __assign({}, ev);\n props.onBlur.call(undefined, focusEvent);\n }\n closePopup(ev);\n }\n }, [focusedState, props.onBlur, isOpen, opened, onClose]);\n var onWrapperMouseDown = React.useCallback(function () {\n if (focusedState) {\n // moving focus from treeview to dropdown triggers Focus and Blur events.\n switchFocus(noop);\n }\n }, [focusedState, switchFocus]);\n var onWrapperClick = React.useCallback(function (event) {\n if (!event.isDefaultPrevented() && targetRef.current) {\n setFocusedState(true);\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n if (!isOpen) {\n openPopup(ev);\n }\n }\n }, [isOpen, openPopup]);\n var onWrapperKeyDown = React.useCallback(function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n var treeviewElement = treeViewRef.current && treeViewRef.current.element;\n if (!targetRef.current || (event.isDefaultPrevented() && inputRef.current === event.target)) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n if (value && value.length > 0 &&\n (keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end ||\n keyCode === Keys.delete)) {\n var tagsToRender = tagsToRenderRef.current;\n var focusedIndex = focusedTagState ?\n tagsToRender.findIndex(function (t) { return matchTags(t, focusedTagState, dataItemKey); }) : -1;\n var newFocusedTag = undefined;\n var hasFocused = focusedIndex !== -1;\n if (keyCode === Keys.left) {\n if (hasFocused) {\n focusedIndex = Math.max(0, focusedIndex - 1);\n }\n else {\n focusedIndex = tagsToRender.length - 1;\n }\n newFocusedTag = tagsToRender[focusedIndex];\n }\n else if (keyCode === Keys.right) {\n if (focusedIndex === tagsToRender.length - 1) {\n newFocusedTag = undefined;\n }\n else if (hasFocused) {\n focusedIndex = Math.min(tagsToRender.length - 1, focusedIndex + 1);\n newFocusedTag = tagsToRender[focusedIndex];\n }\n }\n else if (keyCode === Keys.home) {\n newFocusedTag = tagsToRender[0];\n }\n else if (keyCode === Keys.end) {\n newFocusedTag = tagsToRender[tagsToRender.length - 1];\n }\n else if (keyCode === Keys.delete) {\n if (hasFocused) {\n changeValue(ev, tagsToRender[focusedIndex].data, 'delete');\n }\n }\n if (newFocusedTag !== focusedTagState) {\n setFocusedTagState(newFocusedTag);\n }\n }\n if (isOpen) {\n if (keyCode === Keys.esc || (altKey && keyCode === Keys.up)) {\n closePopup(ev);\n }\n else if (treeviewElement && treeviewElement.querySelector('.k-state-focused') &&\n (keyCode === Keys.up || keyCode === Keys.down ||\n keyCode === Keys.left || keyCode === Keys.right ||\n keyCode === Keys.home || keyCode === Keys.end)) {\n if (keyCode === Keys.up && inputRef.current) {\n var items = Array.from(treeviewElement.querySelectorAll('.k-treeview-item'));\n var focusedItem = items.slice().reverse().find(function (i) { return Boolean(i && i.querySelector('.k-state-focused')); });\n if (focusedItem && items.indexOf(focusedItem) === 0) {\n return switchFocus(function () { focusElement(inputRef.current); });\n }\n }\n switchFocus(noop);\n }\n else if (keyCode === Keys.down) {\n switchFocus(function () { focusElement(inputRef.current || treeviewElement); });\n }\n }\n else {\n if (altKey && keyCode === Keys.down) {\n openPopup(ev);\n }\n }\n }, [isOpen, closePopup, focusElement, switchFocus, openPopup, focusedTagState, dataItemKey, value, changeValue]);\n var onInputKeyDown = React.useCallback(function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n if (altKey || (keyCode !== Keys.up && keyCode !== Keys.down)) {\n return;\n }\n event.preventDefault();\n switchFocus(keyCode === Keys.up ?\n function () { focusElement(elementRef.current); } :\n function () { focusElement(treeViewRef.current && treeViewRef.current.element); });\n }, [focusElement, switchFocus]);\n var onClear = React.useCallback(function (event) {\n if (!targetRef.current) {\n return;\n }\n var ev = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n changeValue(ev, [], 'clear');\n closePopup(ev);\n event.preventDefault();\n }, [changeValue, closePopup]);\n var onTagDelete = React.useCallback(function (itemsToRemove, event) {\n closePopup({ target: targetRef.current });\n if (!focusedState) {\n focusElement(inputRef.current);\n }\n changeValue({\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n }, itemsToRemove, 'delete');\n }, [changeValue, closePopup, focusElement, focusedState]);\n var onExpand = React.useCallback(function (event) {\n if (props.onExpandChange && targetRef.current) {\n var item = event.item, itemHierarchicalIndex = event.itemHierarchicalIndex, nativeEvent = event.nativeEvent, syntheticEvent = event.syntheticEvent;\n var expandEvent = {\n level: toLevel(itemHierarchicalIndex),\n item: item, nativeEvent: nativeEvent, syntheticEvent: syntheticEvent, target: targetRef.current\n };\n props.onExpandChange.call(undefined, expandEvent);\n }\n }, [props.onExpandChange]);\n var onFilterChange = React.useCallback(function (event) {\n if (props.onFilterChange && targetRef.current) {\n var filterDesc = { field: props.textField, operator: 'contains', value: event.target.value };\n var ev = {\n filter: filterDesc,\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n target: targetRef.current\n };\n props.onFilterChange.call(undefined, ev);\n if (props.filter === undefined) {\n setFilterState(event.target.value);\n }\n }\n }, [props.onFilterChange, props.filter, props.textField]);\n var NoData = props.listNoData || ListNoData;\n var localization = useLocalization();\n var isValid = !validityStyles || validity.valid;\n var multiselecttree = (React.createElement(\"span\", { className: classNames('k-widget k-dropdowntree', props.className, {\n 'k-state-focused': focusedState && !disabled,\n 'k-state-invalid': !isValid,\n 'k-state-disabled': disabled\n }), tabIndex: tabIndex, accessKey: props.accessKey, id: id, style: label ? __assign({}, style, { width: undefined }) : style, dir: dir, ref: elementRef, onKeyDown: disabled ? undefined : onWrapperKeyDown, onMouseDown: onWrapperMouseDown, onFocus: onFocus, onBlur: onBlur, role: \"listbox\", \"aria-haspopup\": \"true\", \"aria-expanded\": isOpen, \"aria-disabled\": disabled, \"aria-label\": label, \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy },\n React.createElement(\"span\", { className: classNames('k-multiselect-wrap k-floatwrap', {\n 'k-state-focused': focusedState,\n 'k-state-disabled': disabled,\n 'k-state-invalid': !isValid\n }), onClick: disabled ? undefined : onWrapperClick },\n tagsToRenderRef.current.length > 0 && (React.createElement(TagList, { tag: props.tag, onTagDelete: onTagDelete, data: tagsToRenderRef.current, guid: componentGuid, focused: focusedTagState ? tagsToRenderRef.current.find(function (t) { return matchTags(t, focusedTagState, dataItemKey); }) : undefined })),\n props.loading && (React.createElement(\"span\", { className: classNames('k-icon', { 'k-i-loading': props.loading }) })),\n hasValue && !disabled && (React.createElement(\"span\", { onClick: onClear, className: \"k-icon k-clear-value k-i-close\", title: localization.toLanguageString(clear, messages[clear]), role: \"button\", tabIndex: -1, onMouseDown: function (e) { return e.preventDefault(); } })),\n React.createElement(\"select\", { name: name, ref: selectRef, tabIndex: -1, \"aria-hidden\": true, title: label, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' } },\n React.createElement(\"option\", { value: props.valueMap ? props.valueMap.call(undefined, value) : value }))),\n React.createElement(Popup, { popupClass: popupSettings.popupClass, className: classNames('k-list-container k-group k-reset k-popup-dropdowntree', popupSettings.className, { 'k-rtl': dir === 'rtl' }), style: popupStyles, animate: popupSettings.animate, anchor: elementRef.current, show: isOpen, onOpen: onPopupOpened, onClose: onPopupClosed, appendTo: popupSettings.appendTo, ref: popupRef },\n props.filterable && (React.createElement(\"span\", { className: \"k-list-filter\" },\n React.createElement(\"input\", { className: \"k-textbox\", tabIndex: tabIndex, ref: inputRef, value: props.filter === undefined ? filterState : props.filter, onChange: onFilterChange, onKeyDown: onInputKeyDown }),\n React.createElement(\"span\", { className: \"k-icon k-i-zoom\" }))),\n data.length > 0 ? (React.createElement(TreeView, { ref: treeViewRef, tabIndex: tabIndex, data: data, focusIdField: dataItemKey, textField: props.textField, checkField: checkField, checkIndeterminateField: checkIndeterminateField, expandField: props.expandField, childrenField: subItemsField, expandIcons: true, onItemClick: onChange, onCheckChange: onChange, onExpandChange: onExpand, checkboxes: true, item: props.item })) : (React.createElement(NoData, null, localization.toLanguageString(nodata, messages[nodata]))))));\n return label ? (React.createElement(FloatingLabel, { label: label, editorValue: hasValue, editorPlaceholder: placeholder, editorValid: isValid, editorDisabled: disabled, editorId: id, style: { width: style ? style.width : undefined }, children: multiselecttree, dir: dir })) : multiselecttree;\n});\nvar propTypes = {\n opened: PropTypes.bool,\n disabled: PropTypes.bool,\n dir: PropTypes.string,\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n data: PropTypes.array,\n value: PropTypes.any,\n valueMap: PropTypes.func,\n placeholder: PropTypes.string,\n dataItemKey: PropTypes.string.isRequired,\n textField: PropTypes.string.isRequired,\n checkField: PropTypes.string,\n checkIndeterminateField: PropTypes.string,\n expandField: PropTypes.string,\n subItemsField: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n label: PropTypes.string,\n validationMessage: PropTypes.string,\n validityStyles: PropTypes.bool,\n valid: PropTypes.bool,\n required: PropTypes.bool,\n name: PropTypes.string,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n filterable: PropTypes.bool,\n filter: PropTypes.string,\n loading: PropTypes.bool,\n tags: PropTypes.arrayOf(PropTypes.shape({\n text: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.any)\n })),\n popupSettings: PropTypes.shape({\n animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })]),\n popupClass: PropTypes.string,\n className: PropTypes.string,\n appendTo: PropTypes.any,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFilterChange: PropTypes.func,\n onExpandChange: PropTypes.func,\n item: PropTypes.func,\n listNoData: PropTypes.func\n};\nMultiSelectTree.displayName = 'KendoReactMultiSelectTree';\nMultiSelectTree.propTypes = propTypes;\n","import * as React from 'react';\n/** @hidden */\nexport var FormContext = React.createContext(null);\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport { FormContext } from './FormContext';\n/**\n * Represents the Field component that is used inside the KendoReact Form component.\n * It uses `name` property to access field value and meta information from Form state.\n */\nexport var Field = function (props) {\n var name = props.name, component = props.component, validator = props.validator, children = props.children, onChange = props.onChange, others = __rest(props, [\"name\", \"component\", \"validator\", \"children\", \"onChange\"]);\n var form = React.useContext(FormContext);\n var formId = form ? form.id : '';\n React.useEffect(function () {\n if (!form) {\n return;\n }\n var unregisterField = form.registerField(name, validator);\n return unregisterField;\n }, [name, formId, validator]);\n var handleOnChange = React.useCallback(function (event) {\n // Adding a name here slows down the performance.\n // However, the other apprach taken by Formik is to search for the `name` attribute\n // on `event.target.value` which does not work for all KendoReact components.\n // If Formik uses custom components like the KendoReact ones, it would take the same approach.\n // On the other hand, ReactFinal Form performs better in both cases due to its\n // subscribtion-based model - the fields are subscribed for changes to a given field,\n // which prevents unnececery rerenders. Note that this might be fragile in future React versions -\n // the current performance testing accunts for a slight lag after 300 native HTML inputs in the 120ms-200ms range.\n var newValue = event\n ? (event.value !== undefined\n ? event.value\n : (event.target\n ? event.target.value\n : event.target))\n : event;\n form.onChange(name, { value: newValue });\n if (onChange) {\n onChange.call(undefined, event);\n }\n }, [name, formId, onChange]);\n var onNativeComponentChange = React.useCallback(function (event) { return form.onChange(name, { value: event.target.value }); }, [name, formId]);\n var handleOnBlur = React.useCallback(function () { return form.onBlur(name); }, [name, formId]);\n var handleOnFocus = React.useCallback(function () { return form.onFocus(name); }, [name, formId]);\n if (!form) {\n // TODO: For future versions - warn for missing form in dev mode\n // if (__process.env.NODE_ENV !== 'production') { // or __DEV__\n // throw new Error('Field must be used inside of a component');\n // }\n return null;\n }\n var value = form.valueGetter(name);\n // TODO: For future versions as it's better to have render prop\n // if (typeof children === 'function') {\n // return children({ ...field, children: undefined, ...others });\n // }\n if (typeof component === 'string') {\n // ignore meta, combine input with any other props\n return React.createElement(component, __assign({ onChange: onNativeComponentChange, onBlur: handleOnBlur, onFocus: handleOnFocus, value: value, children: children }, others));\n }\n return React.createElement(component, __assign({ children: children }, others, { \n // input\n onChange: handleOnChange, onBlur: handleOnBlur, onFocus: handleOnFocus, value: value, \n // meta\n validationMessage: form.errors[name], touched: form.touched[name], modified: form.modified[name], visited: form.visited[name], \n // Our `valid` implementation requires double submit to show html5 validation errors,\n // however it's NOT recommended to show html5 validation errors at all as:\n // - There is no standard way to change validation look and feel with CSS.\n // - Look different in each browser / OS\n // - You can have a page in one language but an error message displayed in another language (not localizable)\n valid: !(Boolean(form.errors[name]) && form.touched[name]), name: name }));\n};\nField.displayName = 'KendoReactField';\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-form',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584769,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { FormContext } from './FormContext';\nimport { getter, setter, clone, cloneObject, guid } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\n/**\n * @hidden\n */\nvar FORCEUPDATE_ACCUMULATOR_TIMEOUT = 0;\n/**\n * Represents the [KendoReact Form component]({% slug overview_form %}).\n *\n * @example\n * ```jsx\n * export const FormInput = (fieldRenderProps) => {\n * const onValueChange = React.useCallback(\n * (event) => fieldRenderProps.onChange(event.target.value),\n * [fieldRenderProps.onChange]\n * );\n * return (\n * \n * );\n * };\n *\n * export const App = () => {\n * const handleSubmit = (dataItem) => alert(JSON.stringify(dataItem));\n * return (\n * (\n *
    \n * \n * \n * Submit\n * \n *
    \n * )}\n * />\n * );\n * };\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar Form = /** @class */ (function (_super) {\n __extends(Form, _super);\n /**\n * @hidden\n */\n function Form(props) {\n var _this = _super.call(this, props) || this;\n _this._id = guid();\n _this._touched = {};\n _this._visited = {};\n _this._modified = {};\n _this._validatorsByField = {};\n _this._values = {};\n _this._fields = {};\n _this._unmounted = false;\n _this._submitted = false;\n /**\n * @hidden\n */\n _this.isValid = function () {\n return _this.isFormValid(_this.errors);\n };\n /**\n * @hidden\n */\n _this.accumulatedForceUpdate = function () {\n // IMPORTANT:\n // Should only be used for updates not comming from editors as it\n // will cause cursor jump as react will reset the editor to old value\n if (_this._accumulatorTimeout) {\n clearTimeout(_this._accumulatorTimeout);\n }\n _this._accumulatorTimeout = window.setTimeout(function () {\n _this._accumulatorTimeout = undefined;\n _this.forceUpdate();\n }, FORCEUPDATE_ACCUMULATOR_TIMEOUT);\n };\n /**\n * @hidden\n */\n _this.resetForm = function () {\n _this.values = clone(_this.props.initialValues);\n _this._id = guid();\n _this._touched = {};\n _this._visited = {};\n _this._modified = {};\n _this._validatorsByField = {};\n _this._fields = {};\n _this._submitted = false;\n _this.forceUpdate();\n };\n /**\n * Method for resetting the form state outside the form component.\n *\n * > Use `onReset` only if you cannot achieve the desired behavior through the Field component or by FormRenderProps.\n */\n _this.onReset = function () { return _this.resetForm(); };\n /**\n * @hidden\n */\n _this.addField = function (field) {\n _this._fields[field] = true;\n };\n /**\n * @hidden\n */\n _this.onSubmit = function (event) {\n var touchedVisited = {};\n var fields = _this.fields;\n if (event) {\n if (typeof event.preventDefault === 'function') {\n event.preventDefault();\n }\n if (typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n }\n fields.forEach(function (fieldName) {\n touchedVisited[fieldName] = true;\n });\n // show validations\n _this.visited = __assign({}, touchedVisited);\n _this.touched = __assign({}, touchedVisited);\n var values = _this.values;\n var isValid = _this.isFormValid(_this.errors);\n var isModified = _this.isFormModified(_this.modified, fields);\n if (_this.props.onSubmitClick) {\n _this.props.onSubmitClick.call(undefined, {\n values: values,\n isValid: isValid,\n isModified: isModified,\n event: event\n });\n }\n if (isValid && (_this.props.ignoreModified || isModified) && _this.props.onSubmit) {\n _this._submitted = true;\n _this.props.onSubmit.call(undefined, values, event);\n }\n _this.forceUpdate();\n };\n /**\n * Method for emiting changes to a specific field outside the form component.\n *\n * > Use `onChange` only if you cannot achieve the desired behavior through the Field component by FormRenderProps.\n */\n _this.onChange = function (name, options) {\n var _a;\n var value = options.value;\n _this.addField(name);\n if (!_this.modified[name]) {\n _this.modified = __assign({}, _this.modified, (_a = {}, _a[name] = true, _a));\n }\n _this.valueSetter(name, value);\n _this.forceUpdate();\n };\n /**\n * @hidden\n */\n _this.onFocus = function (name, skipForceUpdate) {\n var _a;\n if (_this.visited[name]) {\n return;\n }\n _this.visited = __assign({}, _this.visited, (_a = {}, _a[name] = true, _a));\n if (!skipForceUpdate) {\n _this.forceUpdate();\n }\n };\n /**\n * @hidden\n */\n _this.onBlur = function (name, skipForceUpdate) {\n var _a;\n if (_this.touched[name]) {\n return;\n }\n _this.onFocus(name, skipForceUpdate);\n _this.touched = __assign({}, _this.touched, (_a = {}, _a[name] = true, _a));\n if (!skipForceUpdate) {\n _this.forceUpdate();\n }\n };\n /**\n * @hidden\n */\n _this.onFieldRegister = function (name, validator) {\n var _a;\n _this.addField(name);\n // The sole reason for using class props over state - nextIndex, needed for destroying validators\n var oldValidators = (_this.validatorsByField[name] || []);\n var nextIndex = oldValidators.length;\n _this.validatorsByField = __assign({}, _this.validatorsByField, (_a = {}, _a[name] = oldValidators.concat([validator]), _a));\n _this.accumulatedForceUpdate();\n return function () {\n var _a;\n // onFieldUnregister:\n if (_this._unmounted) {\n return;\n }\n var newValidators = (_this.validatorsByField[name] || []).slice();\n var validatorIsUnregistered = Boolean(newValidators[nextIndex]);\n newValidators[nextIndex] = undefined;\n _this.validatorsByField = __assign({}, _this.validatorsByField, (_a = {}, _a[name] = newValidators, _a));\n if (validatorIsUnregistered) {\n _this.accumulatedForceUpdate();\n }\n };\n };\n /**\n * @hidden\n */\n _this.isFormValid = function (errors) {\n return !Object.keys(errors).some(function (fieldName) { return Boolean(errors[fieldName]); });\n };\n /**\n * @hidden\n */\n _this.isFormModified = function (modified, fields) {\n return fields.some(function (fieldName) { return modified[fieldName]; });\n };\n /**\n * @hidden\n */\n _this.isFormHasNotTouched = function (touched, fields) {\n return fields.some(function (fieldName) { return !touched[fieldName]; });\n };\n /**\n * @hidden\n */\n _this.isFormTouched = function (touched, fields) {\n return fields.some(function (fieldName) { return touched[fieldName]; });\n };\n /**\n * @hidden\n */\n _this.isFormVisited = function (visited, fields) {\n return fields.some(function (fieldName) { return visited[fieldName]; });\n };\n /**\n * @hidden\n */\n _this.valueGetter = function (fieldName) {\n return getter(fieldName)(_this.values);\n };\n /**\n * @hidden\n */\n _this.valueSetter = function (fieldName, value) {\n return setter(fieldName)(_this.values, value);\n };\n /**\n * @hidden\n */\n _this.onArrayAction = function (name) {\n var _a;\n _this.addField(name);\n if (!_this.modified[name]) {\n _this.modified = __assign({}, _this.modified, (_a = {}, _a[name] = true, _a));\n }\n _this.onBlur(name, true);\n };\n /**\n * @hidden\n */\n _this.onInsert = function (name, options) {\n _this.onArrayAction(name);\n var newArray = (_this.valueGetter(name) || []).slice();\n newArray.splice(options.index, 0, options.value);\n _this.valueSetter(name, newArray);\n _this.forceUpdate();\n };\n /**\n * @hidden\n */\n _this.onUnshift = function (name, options) {\n _this.onInsert(name, {\n value: options.value,\n index: 0\n });\n };\n /**\n * @hidden\n */\n _this.onPush = function (name, options) {\n _this.onArrayAction(name);\n var newArray = (_this.valueGetter(name) || []).concat([options.value]);\n _this.valueSetter(name, newArray);\n _this.forceUpdate();\n };\n /**\n * @hidden\n */\n _this.onPop = function (name) {\n _this.onArrayAction(name);\n var newArray = (_this.valueGetter(name) || []).slice();\n var value = newArray.pop();\n _this.valueSetter(name, newArray);\n _this.forceUpdate();\n return value;\n };\n /**\n * @hidden\n */\n _this.onRemove = function (name, options) {\n _this.onArrayAction(name);\n var newArray = (_this.valueGetter(name) || []).slice();\n var value = newArray.splice(options.index, 1);\n _this.valueSetter(name, newArray);\n _this.forceUpdate();\n return value;\n };\n /**\n * @hidden\n */\n _this.onReplace = function (name, options) {\n _this.onArrayAction(name);\n var newArray = (_this.valueGetter(name) || []).slice();\n newArray.splice(options.index, 1, options.value);\n _this.valueSetter(name, newArray);\n _this.forceUpdate();\n };\n /**\n * @hidden\n */\n _this.onMove = function (name, options) {\n _this.onArrayAction(name);\n var newArray = (_this.valueGetter(name) || []).slice();\n var value = newArray[options.prevIndex];\n newArray.splice(options.prevIndex, 1);\n newArray.splice(options.nextIndex, 0, value);\n _this.valueSetter(name, newArray);\n _this.forceUpdate();\n };\n validatePackage(packageMetadata);\n _this.values = clone(props.initialValues);\n return _this;\n }\n Object.defineProperty(Form.prototype, \"touched\", {\n /**\n * @hidden\n */\n get: function () {\n return this._touched;\n },\n /**\n * @hidden\n */\n set: function (value) {\n this._touched = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Form.prototype, \"visited\", {\n /**\n * @hidden\n */\n get: function () {\n return this._visited;\n },\n /**\n * @hidden\n */\n set: function (value) {\n this._visited = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Form.prototype, \"modified\", {\n /**\n * @hidden\n */\n get: function () {\n return this._modified;\n },\n /**\n * @hidden\n */\n set: function (value) {\n this._modified = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Form.prototype, \"validatorsByField\", {\n /**\n * @hidden\n */\n get: function () {\n return this._validatorsByField;\n },\n /**\n * @hidden\n */\n set: function (value) {\n this._validatorsByField = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Form.prototype, \"values\", {\n /**\n * @hidden\n */\n get: function () {\n return this._values;\n },\n /**\n * @hidden\n */\n set: function (value) {\n this._values = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Form.prototype, \"fields\", {\n /**\n * @hidden\n */\n get: function () {\n return Object.keys(this._fields);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Form.prototype, \"formErrors\", {\n /**\n * @hidden\n */\n get: function () {\n if (this.props.validator) {\n return this.props.validator(this.values, this.valueGetter);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Form.prototype, \"errors\", {\n /**\n * @hidden\n */\n get: function () {\n var _this = this;\n var errors = {};\n var fields = this.fields;\n var validatorsByField = this.validatorsByField;\n fields.forEach(function (fieldName) {\n errors[fieldName] = '';\n if (validatorsByField[fieldName]) {\n var validators_1 = [];\n validatorsByField[fieldName].forEach(function (validator) {\n if (Array.isArray(validator)) {\n validators_1.push.apply(validators_1, validator);\n }\n else {\n validators_1.push(validator);\n }\n });\n // find first validation error\n validators_1.find(function (validator) {\n if (validator) {\n var result = validator(_this.valueGetter(fieldName), _this.valueGetter, { name: fieldName });\n if (result) {\n errors[fieldName] = result;\n return true;\n }\n }\n return false;\n });\n }\n });\n var formErrors = this.formErrors;\n if (formErrors) {\n cloneObject(this.formErrors, errors);\n }\n return errors;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n Form.prototype.componentWillUnmount = function () {\n this._unmounted = true;\n if (this._accumulatorTimeout) {\n clearTimeout(this._accumulatorTimeout);\n }\n };\n /**\n * @hidden\n */\n Form.prototype.render = function () {\n var render = this.props.render;\n var touched = this.touched;\n var visited = this.visited;\n var modified = this.modified;\n var fields = this.fields;\n var errors = this.errors;\n var formValid = this.isFormValid(errors);\n var formModified = this.isFormModified(modified, fields);\n var formTouched = this.isFormTouched(touched, fields);\n var formVisited = this.isFormVisited(visited, fields);\n var formHasNotTouched = this.isFormHasNotTouched(touched, fields);\n // 1. The form is not touched, but has errors - allow submit to force validation.\n // 2. The form is valid and modified - if not modified, disable submit.\n var allowSubmit = (formHasNotTouched && !formValid) || (formValid && (this.props.ignoreModified || formModified));\n return (React.createElement(FormContext.Provider, { key: this._id, value: {\n id: this._id,\n valueGetter: this.valueGetter,\n errors: errors,\n modified: modified,\n touched: touched,\n visited: visited,\n registerField: this.onFieldRegister,\n onSubmit: this.onSubmit,\n onChange: this.onChange,\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onUnshift: this.onUnshift,\n onPush: this.onPush,\n onInsert: this.onInsert,\n onPop: this.onPop,\n onRemove: this.onRemove,\n onReplace: this.onReplace,\n onMove: this.onMove\n } }, render({\n valid: formValid,\n modified: formModified,\n touched: formTouched,\n visited: formVisited,\n submitted: this._submitted,\n valueGetter: this.valueGetter,\n errors: errors,\n allowSubmit: allowSubmit,\n onChange: this.onChange,\n onSubmit: this.onSubmit,\n onFormReset: this.resetForm\n })));\n };\n /**\n * @hidden\n */\n Form.displayName = 'KendoReactForm';\n /**\n * @hidden\n */\n Form.propTypes = {\n initialValues: PropTypes.any,\n onSubmit: PropTypes.func,\n onSubmitClick: PropTypes.func,\n render: PropTypes.func.isRequired\n };\n return Form;\n}(React.Component));\nexport { Form };\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\nimport { FormContext } from './FormContext';\n/**\n * Represents the KendoReact FormElement component.\n * It's small wrapper around HTML form element which automatically attach the\n * Form component's `onSubmit` render prop and Kendo CSS classes.\n * Other props are passed to the DOM node.\n */\nexport var FormElement = React.forwardRef(function (props, ref) {\n var element = React.useRef(null);\n var target = React.useRef(null);\n React.useImperativeHandle(target, function () { return ({ element: element.current, props: props }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var form = React.useContext(FormContext);\n var className = props.className, onSubmit = props.onSubmit, style = props.style, horizontal = props.horizontal, others = __rest(props, [\"className\", \"onSubmit\", \"style\", \"horizontal\"]);\n var formClassName = classNames({\n 'k-form': true,\n 'k-form-horizontal': horizontal === true\n }, className);\n return (React.createElement(\"form\", __assign({ ref: element }, others, { style: props.style, className: formClassName, onSubmit: form ? form.onSubmit : undefined }), props.children));\n});\nFormElement.displayName = 'KendoReactFormElement';\n","var _a;\n/**\n * @hidden\n */\nexport var pagerInfo = 'pager.info';\n/**\n * @hidden\n */\nexport var pagerFirstPage = 'pager.firstPage';\n/**\n * @hidden\n */\nexport var pagerPreviousPage = 'pager.previousPage';\n/**\n * @hidden\n */\nexport var pagerNextPage = 'pager.nextPage';\n/**\n * @hidden\n */\nexport var pagerLastPage = 'pager.lastPage';\n/**\n * @hidden\n */\nexport var pagerItemPerPage = 'pager.itemsPerPage';\n/**\n * @hidden\n */\nexport var pagerPage = 'pager.page';\n/**\n * @hidden\n */\nexport var pagerOf = 'pager.of';\n/**\n * @hidden\n */\nexport var pagerTotalPages = 'pager.totalPages';\n/**\n * @hidden\n */\nexport var filterEqOperator = 'filter.eqOperator';\n/**\n * @hidden\n */\nexport var filterNotEqOperator = 'filter.notEqOperator';\n/**\n * @hidden\n */\nexport var filterIsNullOperator = 'filter.isNullOperator';\n/**\n * @hidden\n */\nexport var filterIsNotNullOperator = 'filter.isNotNullOperator';\n/**\n * @hidden\n */\nexport var filterIsEmptyOperator = 'filter.isEmptyOperator';\n/**\n * @hidden\n */\nexport var filterIsNotEmptyOperator = 'filter.isNotEmptyOperator';\n/**\n * @hidden\n */\nexport var filterStartsWithOperator = 'filter.startsWithOperator';\n/**\n * @hidden\n */\nexport var filterContainsOperator = 'filter.containsOperator';\n/**\n * @hidden\n */\nexport var filterNotContainsOperator = 'filter.notContainsOperator';\n/**\n * @hidden\n */\nexport var filterEndsWithOperator = 'filter.endsWithOperator';\n/**\n * @hidden\n */\nexport var filterGteOperator = 'filter.gteOperator';\n/**\n * @hidden\n */\nexport var filterGtOperator = 'filter.gtOperator';\n/**\n * @hidden\n */\nexport var filterLteOperator = 'filter.lteOperator';\n/**\n * @hidden\n */\nexport var filterLtOperator = 'filter.ltOperator';\n/**\n * @hidden\n */\nexport var filterIsTrue = 'filter.isTrue';\n/**\n * @hidden\n */\nexport var filterIsFalse = 'filter.isFalse';\n/**\n * @hidden\n */\nexport var filterAfterOrEqualOperator = 'filter.afterOrEqualOperator';\n/**\n * @hidden\n */\nexport var filterAfterOperator = 'filter.afterOperator';\n/**\n * @hidden\n */\nexport var filterBeforeOperator = 'filter.beforeOperator';\n/**\n * @hidden\n */\nexport var filterBeforeOrEqualOperator = 'filter.beforeOrEqualOperator';\n/**\n * @hidden\n */\nexport var filterAndLogic = 'filter.andLogic';\n/**\n * @hidden\n */\nexport var filterOrLogic = 'filter.orLogic';\n/**\n * @hidden\n */\nexport var filterAddExpression = 'filter.addExpression';\n/**\n * @hidden\n */\nexport var filterAddGroup = 'filter.addGroup';\n/**\n * @hidden\n */\nexport var filterClose = 'filter.close';\n/**\n * @hidden\n */\nexport var columnMenuFilterClearButton = 'columnMenu.filterClearButton';\n/**\n * @hidden\n */\nexport var columnMenuFilterSubmitButton = 'columnMenu.filterSubmitButton';\n/**\n * @hidden\n */\nexport var columnMenuFilterTitle = 'columnMenu.filterTitle';\n/**\n * @hidden\n */\nexport var columnMenuSortAscending = 'columnMenu.sortAscending';\n/**\n * @hidden\n */\nexport var columnMenuSortDescending = 'columnMenu.sortDescending';\n/**\n * @hidden\n */\nexport var columnMenuFilterEqOperator = 'columnMenu.filterEqOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterNotEqOperator = 'columnMenu.filterNotEqOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsNullOperator = 'columnMenu.filterIsNullOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsNotNullOperator = 'columnMenu.filterIsNotNullOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsEmptyOperator = 'columnMenu.filterIsEmptyOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsNotEmptyOperator = 'columnMenu.filterIsNotEmptyOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterStartsWithOperator = 'columnMenu.filterStartsWithOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterContainsOperator = 'columnMenu.filterContainsOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterNotContainsOperator = 'columnMenu.filterNotContainsOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterEndsWithOperator = 'columnMenu.filterEndsWithOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterGteOperator = 'columnMenu.filterGteOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterGtOperator = 'columnMenu.filterGtOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterLteOperator = 'columnMenu.filterLteOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterLtOperator = 'columnMenu.filterLtOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterIsTrue = 'columnMenu.filterIsTrue';\n/**\n * @hidden\n */\nexport var columnMenuFilterAfterOrEqualOperator = 'columnMenu.filterAfterOrEqualOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterAfterOperator = 'columnMenu.filterAfterOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterBeforeOperator = 'columnMenu.filterBeforeOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterBeforeOrEqualOperator = 'columnMenu.filterBeforeOrEqualOperator';\n/**\n * @hidden\n */\nexport var columnMenuFilterAndLogic = 'columnMenu.filterAndLogic';\n/**\n * @hidden\n */\nexport var columnMenuFilterOrLogic = 'columnMenu.filterOrLogic';\n/**\n * @hidden\n */\nexport var sortAriaLabel = 'sort.ariaLabel';\n/**\n * @hidden\n */\nexport var filterAriaLabel = 'filter.ariaLabel';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[pagerItemPerPage] = 'items per page',\n _a[pagerInfo] = '{0} - {1} of {2} items',\n _a[pagerFirstPage] = 'Go to the first page',\n _a[pagerPreviousPage] = 'Go to the previous page',\n _a[pagerNextPage] = 'Go to the next page',\n _a[pagerLastPage] = 'Go to the last page',\n _a[pagerPage] = 'Page',\n _a[pagerOf] = 'Of',\n _a[pagerTotalPages] = '{0}',\n _a[sortAriaLabel] = 'Sortable',\n _a[filterAriaLabel] = 'Filter',\n _a[filterEqOperator] = 'Is equal to',\n _a[filterNotEqOperator] = 'Is not equal to',\n _a[filterIsNullOperator] = 'Is null',\n _a[filterIsNotNullOperator] = 'Is not null',\n _a[filterIsEmptyOperator] = 'Is empty',\n _a[filterIsNotEmptyOperator] = 'Is not empty',\n _a[filterStartsWithOperator] = 'Starts with',\n _a[filterContainsOperator] = 'Contains',\n _a[filterNotContainsOperator] = 'Does not contain',\n _a[filterEndsWithOperator] = 'Ends with',\n _a[filterGteOperator] = 'Is greater than or equal to',\n _a[filterGtOperator] = 'Is greater than',\n _a[filterLteOperator] = 'Is less than or equal to',\n _a[filterLtOperator] = 'Is less than',\n _a[filterIsTrue] = 'Is true',\n _a[filterIsFalse] = 'Is false',\n _a[filterAfterOrEqualOperator] = 'Is after or equal to',\n _a[filterAfterOperator] = 'Is after',\n _a[filterBeforeOperator] = 'Is before',\n _a[filterBeforeOrEqualOperator] = 'Is before or equal to',\n _a[filterAndLogic] = 'And',\n _a[filterOrLogic] = 'Or',\n _a[filterAddExpression] = 'Add Expression',\n _a[filterAddGroup] = 'Add Group',\n _a[filterClose] = 'Close',\n _a[columnMenuFilterClearButton] = 'Clear',\n _a[columnMenuFilterSubmitButton] = 'Filter',\n _a[columnMenuFilterTitle] = 'Filter',\n _a[columnMenuSortAscending] = 'Sort Ascending',\n _a[columnMenuSortDescending] = 'Sort Descending',\n _a[columnMenuFilterEqOperator] = 'Is equal to',\n _a[columnMenuFilterNotEqOperator] = 'Is not equal to',\n _a[columnMenuFilterIsNullOperator] = 'Is null',\n _a[columnMenuFilterIsNotNullOperator] = 'Is not null',\n _a[columnMenuFilterIsEmptyOperator] = 'Is empty',\n _a[columnMenuFilterIsNotEmptyOperator] = 'Is not empty',\n _a[columnMenuFilterStartsWithOperator] = 'Starts with',\n _a[columnMenuFilterContainsOperator] = 'Contains',\n _a[columnMenuFilterNotContainsOperator] = 'Does not contain',\n _a[columnMenuFilterEndsWithOperator] = 'Ends with',\n _a[columnMenuFilterGteOperator] = 'Is greater than or equal to',\n _a[columnMenuFilterGtOperator] = 'Is greater than',\n _a[columnMenuFilterLteOperator] = 'Is less than or equal to',\n _a[columnMenuFilterLtOperator] = 'Is less than',\n _a[columnMenuFilterIsTrue] = 'Is true',\n _a[columnMenuFilterAfterOrEqualOperator] = 'Is after or equal to',\n _a[columnMenuFilterAfterOperator] = 'Is after',\n _a[columnMenuFilterBeforeOperator] = 'Is before',\n _a[columnMenuFilterBeforeOrEqualOperator] = 'Is before or equal to',\n _a[columnMenuFilterAndLogic] = 'And',\n _a[columnMenuFilterOrLogic] = 'Or',\n _a);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\nvar dots = '...';\n/**\n * @hidden\n */\nvar PagerNumericButtons = /** @class */ (function (_super) {\n __extends(PagerNumericButtons, _super);\n function PagerNumericButtons() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handlePageChange = function (e, page) {\n e.preventDefault();\n _this.props.pageChange(page, e);\n };\n _this.handleSelectPageChange = function (e) {\n e.preventDefault();\n _this.props.pageChange(e.target.value, e);\n };\n return _this;\n }\n PagerNumericButtons.prototype.render = function () {\n var _this = this;\n var prevDots = this.start > 1 && this.renderDots(this.start - 1);\n var postDots = this.end < this.props.totalPages && this.renderDots(this.end + 1);\n var prevOptionDots = this.start > 1 && this.renderOptionDots(this.start - 1);\n var postOptionDots = this.end < this.props.totalPages && this.renderOptionDots(this.end + 1);\n var buttons = [];\n for (var idx = this.start; idx <= this.end; idx++) {\n buttons.push(idx);\n }\n var numerics = buttons.map(function (page) { return (React.createElement(\"li\", { key: page },\n React.createElement(\"a\", { href: \"#\", onClick: function (e) { return _this.handlePageChange(e, page); }, className: classNames('k-link', {\n 'k-state-selected': _this.props.currentPage === page\n }) }, page))); });\n var options = buttons.map(function (page) { return (React.createElement(\"option\", { key: page, className: classNames('k-link') }, page)); });\n return (React.createElement(\"div\", { className: \"k-pager-numbers-wrap\" },\n React.createElement(\"select\", { className: \"k-dropdown\", value: this.props.currentPage, onChange: function (e) { return _this.handleSelectPageChange(e); } },\n prevOptionDots,\n options,\n postOptionDots),\n React.createElement(\"ul\", { className: \"k-pager-numbers k-reset\" },\n prevDots,\n numerics,\n postDots)));\n };\n PagerNumericButtons.prototype.renderDots = function (page) {\n var _this = this;\n return (React.createElement(\"li\", null,\n React.createElement(\"a\", { className: \"k-link\", onClick: function (e) { return _this.handlePageChange(e, page); }, href: \"#\" }, dots)));\n };\n PagerNumericButtons.prototype.renderOptionDots = function (page) {\n return (React.createElement(\"option\", { className: \"k-link\", value: page }, dots));\n };\n Object.defineProperty(PagerNumericButtons.prototype, \"end\", {\n get: function () {\n return Math.min((this.start + this.props.buttonCount) - 1, this.props.totalPages);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PagerNumericButtons.prototype, \"start\", {\n get: function () {\n var page = this.props.currentPage;\n var buttonCount = this.props.buttonCount;\n if (page > buttonCount) {\n var reminder = (page % buttonCount);\n return (reminder === 0) ? (page - buttonCount) + 1 : (page - reminder) + 1;\n }\n return 1;\n },\n enumerable: true,\n configurable: true\n });\n return PagerNumericButtons;\n}(React.Component));\nexport { PagerNumericButtons };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService, provideIntlService } from '@progress/kendo-react-intl';\nimport { messages, pagerOf, pagerPage, pagerTotalPages } from './../messages';\n/**\n * @hidden\n */\nvar PagerInput = /** @class */ (function (_super) {\n __extends(PagerInput, _super);\n function PagerInput() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._text = undefined;\n _this.onChange = function (e) {\n var text = _this._text = e.target.value.replace(/\\D/g, '');\n _this.forceUpdate();\n if (text) {\n _this.props.pageChange(parseInt(text, 10), e);\n }\n };\n _this.value = function () {\n var value = _this._text === undefined ? _this.props.currentPage.toString() : _this._text;\n _this._text = undefined;\n return value;\n };\n return _this;\n }\n PagerInput.prototype.render = function () {\n var _this = this;\n var intlService = provideIntlService(this);\n var localizationService = provideLocalizationService(this);\n var pageMessage = this.props.messagesMap ? this.props.messagesMap(pagerPage) :\n ({ messageKey: pagerPage, defaultMessage: messages[pagerPage] });\n var ofMessage = this.props.messagesMap ? this.props.messagesMap(pagerOf) :\n ({ messageKey: pagerOf, defaultMessage: messages[pagerOf] });\n var totalPagesMessage = this.props.messagesMap ? this.props.messagesMap(pagerTotalPages) :\n ({ messageKey: pagerTotalPages, defaultMessage: messages[pagerTotalPages] });\n return (React.createElement(\"span\", { className: \"k-pager-input k-label\" },\n localizationService.toLanguageString(pageMessage.messageKey, pageMessage.defaultMessage),\n React.createElement(\"input\", { className: \"k-textbox\", value: this.value(), onBlur: function () { return _this.forceUpdate(); }, onChange: this.onChange }), localizationService.toLanguageString(ofMessage.messageKey, ofMessage.defaultMessage) + \" \" + intlService\n .format(localizationService.toLanguageString(totalPagesMessage.messageKey, totalPagesMessage.defaultMessage), [\n this.props.totalPages\n ])));\n };\n return PagerInput;\n}(React.Component));\nexport { PagerInput };\nregisterForLocalization(PagerInput);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, pagerItemPerPage } from './../messages';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\n/**\n * @hidden\n */\nvar PagerPageSizes = /** @class */ (function (_super) {\n __extends(PagerPageSizes, _super);\n function PagerPageSizes() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.pageSizeChange = function (e) {\n if (_this.props.pageChange) {\n _this.props.pageChange({ skip: 0, take: parseInt(e.target.value, 10) }, e);\n }\n };\n return _this;\n }\n PagerPageSizes.prototype.render = function () {\n var _this = this;\n var sizes = this.props.pageSizes.slice();\n if (sizes.filter(function (s) { return s === _this.props.pageSize; }).length === 0) {\n sizes.unshift(this.props.pageSize);\n }\n var itemPerPageMessage = this.props.messagesMap ? this.props.messagesMap(pagerItemPerPage) :\n ({ messageKey: pagerItemPerPage, defaultMessage: messages[pagerItemPerPage] });\n return (React.createElement(\"span\", { className: \"k-pager-sizes k-label\" },\n React.createElement(DropDownList, { value: this.props.pageSize, data: sizes, onChange: this.pageSizeChange }),\n provideLocalizationService(this).toLanguageString(itemPerPageMessage.messageKey, itemPerPageMessage.defaultMessage)));\n };\n return PagerPageSizes;\n}(React.Component));\nexport { PagerPageSizes };\nregisterForLocalization(PagerPageSizes);\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-data-tools',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584493,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { PagerNumericButtons } from './PagerNumericButtons';\nimport { PagerInput } from './PagerInput';\nimport { PagerPageSizes } from './PagerPageSizes';\nimport { messages, pagerFirstPage, pagerLastPage, pagerNextPage, pagerPreviousPage, pagerInfo } from '../messages';\nimport { registerForIntl, registerForLocalization, provideLocalizationService, provideIntlService } from '@progress/kendo-react-intl';\nimport { classNames } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar RESPONSIVE_BREAKPOINT_MEDIUM = 600;\n/**\n * @hidden\n */\nvar RESPONSIVE_BREAKPOINT_LARGE = 768;\nvar Pager = /** @class */ (function (_super) {\n __extends(Pager, _super);\n function Pager(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n _this.changePage = function (page, event) {\n if (_this.props.onPageChange && page > 0 && page <= _this.totalPages) {\n _this.props.onPageChange({\n target: _this,\n skip: (page - 1) * _this.props.take,\n take: _this.props.take,\n syntheticEvent: event,\n nativeEvent: event.nativeEvent\n });\n }\n };\n _this.onWindowResize = function () {\n var element = _this.element;\n if (!element || !_this.props.responsive) {\n return;\n }\n var width = element.offsetWidth;\n if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {\n element.classList.remove('k-pager-md');\n element.classList.add('k-pager-sm');\n }\n else if (width >= RESPONSIVE_BREAKPOINT_MEDIUM && width < RESPONSIVE_BREAKPOINT_LARGE) {\n element.classList.add('k-pager-md');\n element.classList.remove('k-pager-sm');\n }\n else {\n element.classList.remove('k-pager-md');\n element.classList.remove('k-pager-sm');\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(Pager.prototype, \"element\", {\n /**\n * Returns the HTML element of the Pager component.\n */\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n Pager.prototype.componentDidMount = function () {\n window.addEventListener('resize', this.onWindowResize);\n this.onWindowResize();\n };\n /**\n * @hidden\n */\n Pager.prototype.componentWillUnmount = function () {\n window.removeEventListener('resize', this.onWindowResize);\n };\n /**\n * @hidden\n */\n Pager.prototype.render = function () {\n var _this = this;\n var _a = this.props, skip = _a.skip, take = _a.take, total = _a.total, pageSizes = _a.pageSizes, messagesMap = _a.messagesMap;\n var localizationService = provideLocalizationService(this);\n var intlService = provideIntlService(this);\n var currentPage = Math.floor(skip / take) + 1;\n var changer = this.props.type === 'numeric' ?\n (React.createElement(PagerNumericButtons, { buttonCount: this.props.buttonCount || 0, totalPages: this.totalPages, currentPage: currentPage, pageChange: this.changePage })) : (React.createElement(PagerInput, { currentPage: currentPage, totalPages: this.totalPages, pageChange: this.changePage, messagesMap: messagesMap }));\n var firstPageMessage = messagesMap ? messagesMap(pagerFirstPage) :\n ({ messageKey: pagerFirstPage, defaultMessage: messages[pagerFirstPage] });\n var previousPageMessage = messagesMap ? messagesMap(pagerPreviousPage) :\n ({ messageKey: pagerPreviousPage, defaultMessage: messages[pagerPreviousPage] });\n var nextPageMessage = messagesMap ? messagesMap(pagerNextPage) :\n ({ messageKey: pagerNextPage, defaultMessage: messages[pagerNextPage] });\n var lastPageMessage = messagesMap ? messagesMap(pagerLastPage) :\n ({ messageKey: pagerLastPage, defaultMessage: messages[pagerLastPage] });\n var infoMessage = messagesMap ? messagesMap(pagerInfo) :\n ({ messageKey: pagerInfo, defaultMessage: messages[pagerInfo] });\n var first, prev, next, last;\n if (this.props.previousNext) {\n first = this.renderButton(1, 'k-link k-pager-nav k-pager-first' + (currentPage === 1 ? ' k-state-disabled' : ''), localizationService.toLanguageString(firstPageMessage.messageKey, firstPageMessage.defaultMessage), 'k-icon k-i-arrow-end-left');\n prev = this.renderButton(currentPage - 1, 'k-link k-pager-nav' + (currentPage === 1 ? ' k-state-disabled' : ''), localizationService.toLanguageString(previousPageMessage.messageKey, previousPageMessage.defaultMessage), 'k-icon k-i-arrow-60-left');\n next = this.renderButton(currentPage + 1, 'k-link k-pager-nav' + (currentPage >= this.totalPages ? ' k-state-disabled' : ''), localizationService.toLanguageString(nextPageMessage.messageKey, nextPageMessage.defaultMessage), 'k-icon k-i-arrow-60-right');\n last = this.renderButton(this.totalPages, 'k-link k-pager-nav k-pager-last' + (currentPage >= this.totalPages ? ' k-state-disabled' : ''), localizationService.toLanguageString(lastPageMessage.messageKey, lastPageMessage.defaultMessage), 'k-icon k-i-arrow-end-right');\n }\n var pagerPageSizes = pageSizes && (React.createElement(PagerPageSizes, { pageChange: this.props.onPageChange, pageSize: take, pageSizes: pageSizes, messagesMap: messagesMap }));\n var info = this.props.info && (React.createElement(\"div\", { className: \"k-pager-info k-label\" }, intlService\n .format(localizationService.toLanguageString(infoMessage.messageKey, infoMessage.defaultMessage), [\n Math.min(skip + 1, total),\n Math.min(skip + take, total),\n total\n ])));\n return (React.createElement(\"div\", { className: classNames('k-pager-wrap k-pager k-widget', this.props.className), style: this.props.style, role: \"navigation\", ref: function (element) { return _this._element = element; } },\n first,\n prev,\n changer,\n next,\n last,\n pagerPageSizes,\n info));\n };\n Pager.prototype.renderButton = function (page, className, title, icon) {\n var _this = this;\n return (React.createElement(\"a\", { onClick: function (e) {\n e.preventDefault();\n _this.changePage(page, e);\n }, href: \"#\", className: className, title: title },\n React.createElement(\"span\", { className: icon })));\n };\n Object.defineProperty(Pager.prototype, \"totalPages\", {\n get: function () {\n return Math.ceil((this.props.total || 0) / this.props.take);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n Pager.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n total: PropTypes.number.isRequired,\n skip: PropTypes.number.isRequired,\n take: PropTypes.number.isRequired,\n buttonCount: PropTypes.number,\n info: PropTypes.bool,\n type: PropTypes.oneOf(['numeric', 'input']),\n pageSizes: PropTypes.arrayOf(PropTypes.number),\n previousNext: PropTypes.bool,\n onPageChange: PropTypes.func,\n messagesMap: PropTypes.func\n };\n /**\n * @hidden\n */\n Pager.defaultProps = {\n buttonCount: 10,\n info: true,\n type: 'numeric'\n };\n return Pager;\n}(React.Component));\nexport { Pager };\nregisterForIntl(Pager);\nregisterForLocalization(Pager);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\n/**\n * @hidden\n */\nexport var createFilterComponent = function (settings) {\n var Cell = /** @class */ (function (_super) {\n __extends(FilterComponent, _super);\n function FilterComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.filterChange = function (event) {\n if (_this.props.onFilterChange) {\n _this.props.onFilterChange(event);\n }\n };\n _this.inputChange = function (e) {\n var value = e.target.value;\n var _a = _this.props, _b = _a.filter, filter = _b === void 0 ? [] : _b, _c = _a.field, field = _c === void 0 ? '' : _c;\n var existing = _this.findCellFilter();\n var filterResult = existing ?\n filter.map(function (f) { return f.field === field ? __assign({}, existing, { value: value }) : f; }) : filter.concat([__assign({}, settings.emptyFilter, { value: value, field: field })]);\n _this.filterChange({\n filter: filterResult,\n field: field,\n syntheticEvent: e.syntheticEvent\n });\n };\n _this.operatorChange = function (e) {\n var operator = e.target.value.operator;\n var _a = _this.props, _b = _a.filter, filter = _b === void 0 ? [] : _b, _c = _a.field, field = _c === void 0 ? '' : _c;\n var existing = _this.findCellFilter();\n var filterResult = existing ?\n filter.map(function (f) { return f.field === field ? __assign({}, existing, { operator: operator }) : f; }) : filter.concat([__assign({}, settings.emptyFilter, { field: field, operator: operator })]);\n _this.filterChange({\n filter: filterResult,\n field: field,\n syntheticEvent: e.syntheticEvent\n });\n };\n _this.clearButtonClick = function (e) {\n var _a = _this.props, _b = _a.filter, filter = _b === void 0 ? [] : _b, _c = _a.field, field = _c === void 0 ? '' : _c;\n _this.filterChange({\n filter: filter.filter(function (f) { return f.field !== field; }),\n field: field,\n syntheticEvent: e\n });\n };\n _this.findCellFilter = function () {\n var _a = _this.props, _b = _a.filter, filter = _b === void 0 ? [] : _b, field = _a.field;\n return filter.find(function (f) { return f.field === field; });\n };\n return _this;\n }\n FilterComponent.prototype.render = function () {\n var _a = this.props, _b = _a.clearButtonTitle, clearButtonTitle = _b === void 0 ? '' : _b, _c = _a.operators, operators = _c === void 0 ? [] : _c;\n var filter = this.findCellFilter() || __assign({}, settings.emptyFilter, { operator: '' });\n var operator = filter.operator, value = filter.value;\n var operatorComponentProps = {\n value: operators.find(function (item) { return item.operator === operator; }) || null,\n onChange: this.operatorChange,\n className: 'k-dropdown-operator',\n iconClassName: 'k-i-filter k-icon',\n data: operators,\n textField: 'text',\n popupSettings: { width: '' },\n components: this.props.components\n };\n return (React.createElement(\"div\", { className: \"k-filtercell\" },\n React.createElement(\"div\", { className: \"k-filtercell-wrapper\" },\n settings.inputComponent({ value: value, onChange: this.inputChange, components: this.props.components }),\n React.createElement(\"div\", { className: \"k-filtercell-operator\" },\n settings.operatorComponent(operatorComponentProps, this.props),\n React.createElement(\"button\", { className: \n /* button is always visible if there is either value or operator */\n (!(value === null || value === '') || operator) ?\n 'k-button k-button-icon k-clear-button-visible' :\n 'k-button k-button-icon', title: clearButtonTitle, type: \"button\", onClick: this.clearButtonClick },\n React.createElement(\"span\", { className: \"k-icon k-i-filter-clear\" }))))));\n };\n return FilterComponent;\n }(React.Component));\n return Cell;\n};\n","var _a, _b, _c;\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_LEVEL = 'data-keyboardnavlevel';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_SCOPE = 'data-keyboardnavscope';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_HEADER = 'data-keyboardnavheader';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_BODY = 'data-keyboardnavbody';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_ID = 'data-keyboardnavid';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_DATA_ZONE = 'data-keyboardnavzone';\n/**\n * @hidden\n */\nexport var KEYBOARD_NAV_FILTER_COL_SUFFIX = '_filter';\nvar FOCUSABLE_ELEMENTS_BASE = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n/**\n * @hidden\n */\nexport var FOCUSABLE_ELEMENTS = FOCUSABLE_ELEMENTS_BASE.concat(['[tabindex]']);\n/**\n * @hidden\n */\nexport var TABBABLE_ELEMENTS = FOCUSABLE_ELEMENTS_BASE.concat(['[tabindex]']).map(function (selector) { return selector + ':not([tabindex=\"-1\"])'; });\n/**\n * @hidden\n */\nexport var tableKeyboardNavigationScopeAttributes = (_a = {},\n _a[KEYBOARD_NAV_DATA_SCOPE] = true,\n _a);\n/**\n * @hidden\n */\nexport var tableKeyboardNavigationHeaderAttributes = (_b = {},\n _b[KEYBOARD_NAV_DATA_HEADER] = true,\n _b);\n/**\n * @hidden\n */\nexport var tableKeyboardNavigationBodyAttributes = (_c = {},\n _c[KEYBOARD_NAV_DATA_BODY] = true,\n _c);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { createFilterComponent } from './FilterComponent';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nvar booleanOperator = 'eq';\nvar settings = {\n emptyFilter: { operator: booleanOperator, value: '' },\n inputComponent: function (_props) { return null; },\n operatorComponent: function (props, cellProps) {\n var _a = cellProps.filter, filter = _a === void 0 ? [] : _a, field = cellProps.field;\n var current = filter.find(function (f) { return f.field === field; });\n return (React.createElement(DropDownList, __assign({}, props, { value: props.data.find(function (x) { return x.operator === (current ? current.value : ''); }), onChange: function (e) {\n if (!cellProps.onFilterChange) {\n return;\n }\n var value = e.target.value.operator;\n if (value === '') {\n if (current) {\n cellProps.onFilterChange.call(undefined, {\n filter: filter.filter(function (f) { return f.field !== current.field; }),\n field: field,\n syntheticEvent: e.syntheticEvent\n });\n }\n return;\n }\n var filterResult = current ?\n filter.map(function (f) { return f.field === field ? __assign({}, current, { value: value }) : f; }) : filter.concat([{ value: value, field: field, operator: booleanOperator }]);\n cellProps.onFilterChange.call(undefined, {\n filter: filterResult,\n field: field,\n syntheticEvent: e.syntheticEvent\n });\n } })));\n }\n};\n/**\n * @hidden\n */\nvar BooleanFilterCell = /** @class */ (function (_super) {\n __extends(BooleanFilterCell, _super);\n function BooleanFilterCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return BooleanFilterCell;\n}(createFilterComponent(settings)));\nexport { BooleanFilterCell };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { createFilterComponent } from './FilterComponent';\nimport { DatePicker } from '@progress/kendo-react-dateinputs';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nvar settings = {\n inputComponent: function (props) { return React.createElement(DatePicker, __assign({}, props)); },\n operatorComponent: function (props) { return React.createElement(DropDownList, __assign({}, props)); },\n emptyFilter: { operator: 'eq', value: null }\n};\n/**\n * @hidden\n */\nvar DateFilterCell = /** @class */ (function (_super) {\n __extends(DateFilterCell, _super);\n function DateFilterCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return DateFilterCell;\n}(createFilterComponent(settings)));\nexport { DateFilterCell };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { createFilterComponent } from './FilterComponent';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nimport { NumericTextBox } from '@progress/kendo-react-inputs';\nvar settings = {\n inputComponent: function (props) { return React.createElement(NumericTextBox, __assign({}, props)); },\n operatorComponent: function (props) { return React.createElement(DropDownList, __assign({}, props)); },\n emptyFilter: { operator: 'eq', value: null }\n};\n/**\n * @hidden\n */\nvar NumericFilterCell = /** @class */ (function (_super) {\n __extends(NumericFilterCell, _super);\n function NumericFilterCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return NumericFilterCell;\n}(createFilterComponent(settings)));\nexport { NumericFilterCell };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { createFilterComponent } from './FilterComponent';\nimport { Input } from '@progress/kendo-react-inputs';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nvar settings = {\n inputComponent: function (props) { return React.createElement(Input, __assign({}, props)); },\n operatorComponent: function (props) { return React.createElement(DropDownList, __assign({}, props)); },\n emptyFilter: { operator: 'contains', value: '' }\n};\n/**\n * @hidden\n */\nvar TextFilterCell = /** @class */ (function (_super) {\n __extends(TextFilterCell, _super);\n function TextFilterCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return TextFilterCell;\n}(createFilterComponent(settings)));\nexport { TextFilterCell };\n","import * as React from 'react';\n/**\n * @hidden\n */\nexport var TableKeyboardNavigationContext = React.createContext(undefined);\nTableKeyboardNavigationContext.displayName = 'KendoReactTableKeyboardNavigationContext';\n","import * as React from 'react';\nimport { KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL } from './constants';\nimport { TableKeyboardNavigationContext } from './TableKeyboardNavigationContext';\n/**\n * @hidden\n */\nexport var useTableKeyboardNavigation = function (elementId, navigatable) {\n var _a;\n var navigationContext = React.useContext(TableKeyboardNavigationContext);\n if (!navigationContext || !elementId || navigatable === false) {\n return {};\n }\n return _a = {\n tabIndex: navigationContext && navigationContext.activeId && navigationContext.activeId === elementId ? 0 : -1\n },\n _a[KEYBOARD_NAV_DATA_LEVEL] = navigationContext.level,\n _a[KEYBOARD_NAV_DATA_ID] = elementId,\n _a;\n};\n","var __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};\nimport * as React from 'react';\nimport { useTableKeyboardNavigation } from '../navigation/hooks';\n/**\n * @hidden\n */\nexport var HeaderThElement = function (props) {\n var ariaSort = props.ariaSort, colSpan = props.colSpan, rowSpan = props.rowSpan, className = props.className, style = props.style, columnId = props.columnId, onKeyDown = props.onKeyDown, navigatable = props.navigatable, ariaColumnIndex = props.ariaColumnIndex, ariaLabel = props.ariaLabel, role = props.role, ariaSelected = props.ariaSelected;\n var navigationAttributes = useTableKeyboardNavigation(columnId, navigatable);\n return (React.createElement(\"th\", __assign({ \"aria-sort\": ariaSort, \"aria-label\": ariaLabel, \"aria-colindex\": ariaColumnIndex, \"aria-selected\": ariaSelected, \n // TODO: Enable this with React 18. Currently throws warnings\n // aria-description={ariaDescription}\n colSpan: colSpan, rowSpan: rowSpan, className: className, style: style, onKeyDown: onKeyDown, role: role }, navigationAttributes), props.children));\n};\nHeaderThElement.displayName = 'KendoReactHeaderThElement';\n","import { FOCUSABLE_ELEMENTS, KEYBOARD_NAV_DATA_BODY, KEYBOARD_NAV_DATA_HEADER, KEYBOARD_NAV_DATA_ID, KEYBOARD_NAV_DATA_LEVEL, KEYBOARD_NAV_DATA_SCOPE, KEYBOARD_NAV_FILTER_COL_SUFFIX, TABBABLE_ELEMENTS } from './constants';\n/**\n * @hidden\n */\nexport var generateNavigatableId = function (navigationId, idPrefix, type) {\n if (type === void 0) { type = 'cell'; }\n return idPrefix + \"_\" + navigationId + \"_\" + type;\n};\n/**\n * @hidden\n */\nexport var getNavigatableLevel = function (element) {\n if (!element) {\n return;\n }\n return parseInt(element.getAttribute(KEYBOARD_NAV_DATA_LEVEL) || '', 10);\n};\n/**\n * @hidden\n */\nexport var getNavigatableId = function (element) {\n if (!element) {\n return;\n }\n var dataId = element.getAttribute(KEYBOARD_NAV_DATA_ID);\n return dataId ? dataId : undefined;\n};\n/**\n * @hidden\n */\nexport var isNavigatable = function (element) {\n if (!element) {\n return false;\n }\n var dataId = element.getAttribute(KEYBOARD_NAV_DATA_ID);\n return Boolean(dataId);\n};\n/**\n * @hidden\n */\nexport var getNavigatableElement = function (scope, options) {\n if (options === void 0) { options = { level: 0 }; }\n return scope.querySelector(\"[\" + KEYBOARD_NAV_DATA_LEVEL + \"='\" + options.level + \"']\");\n};\n/**\n * @hidden\n */\nexport var getClosestNavigatableElement = function (target) {\n return (target.parentElement &&\n target.parentElement.closest(\"[\" + KEYBOARD_NAV_DATA_LEVEL + \"]\"));\n};\n/**\n * @hidden\n */\nexport var getActiveElement = function (scope, activeId) {\n return scope.querySelector(\"[\" + KEYBOARD_NAV_DATA_ID + \"='\" + activeId + \"']\");\n};\n/**\n * @hidden\n */\nexport var getClosestScope = function (target) {\n return (target.parentElement &&\n target.parentElement.closest(\"[\" + KEYBOARD_NAV_DATA_SCOPE + \"]\"));\n};\n/**\n * @hidden\n */\nexport var getHeaderElement = function (scope) {\n return scope.querySelector(\"[\" + KEYBOARD_NAV_DATA_HEADER + \"]\");\n};\n/**\n * @hidden\n */\nexport var getBodyElement = function (scope) {\n return scope.querySelector(\"[\" + KEYBOARD_NAV_DATA_BODY + \"]\");\n};\n/**\n * @hidden\n */\nexport var getFocusableElements = function (scope, options) {\n if (options === void 0) { options = { focusable: false }; }\n var selectors = options.focusable ? FOCUSABLE_ELEMENTS : TABBABLE_ELEMENTS;\n return Array.from(scope.querySelectorAll(selectors.join(',')));\n};\n/**\n * @hidden\n */\nexport var getNavigatableElements = function (scope, options) {\n if (options === void 0) { options = { level: 0 }; }\n if (!scope) {\n return [];\n }\n var selector = FOCUSABLE_ELEMENTS.map(function (el) { return el + (\"[\" + KEYBOARD_NAV_DATA_LEVEL + \"='\" + options.level + \"']\"); }).join(',');\n return Array.from(scope.querySelectorAll(selector));\n};\n/**\n * @hidden\n */\nexport var filterNavigatableElements = function (options) {\n if (options === void 0) { options = { level: 0 }; }\n var selector = FOCUSABLE_ELEMENTS.map(function (sel) { return sel + (\"[\" + KEYBOARD_NAV_DATA_LEVEL + \"='\" + options.level + \"']\"); }).join(',');\n return function (element) { return element.matches(selector); };\n};\n/**\n * @hidden\n */\nexport var focusElement = function (options) {\n var elementForFocus = options.elementForFocus, event = options.event, contextStateRef = options.contextStateRef, prevElement = options.prevElement;\n if (contextStateRef.current && elementForFocus && elementForFocus.focus) {\n event.preventDefault();\n elementForFocus.focus();\n if (isNavigatable(elementForFocus)) {\n elementForFocus.setAttribute('tabIndex', '0');\n contextStateRef.current.activeId = getNavigatableId(elementForFocus);\n }\n if (prevElement && isNavigatable(prevElement)) {\n prevElement.setAttribute('tabIndex', '-1');\n }\n }\n};\n/**\n * @hidden\n */\nexport var getIdPrefix = function (navigationStateRef) {\n return navigationStateRef.current ? navigationStateRef.current.idPrefix : '';\n};\n/**\n * @hidden\n */\nexport var findNextIdByRowIndex = function (initialRowIndex, cellIndex, elementId, matrix, isReverse) {\n if (!elementId) {\n return [];\n }\n var currentRowIndex = initialRowIndex + (isReverse ? -1 : 1);\n while (currentRowIndex >= 0 && currentRowIndex < matrix.length) {\n var currentId = matrix[currentRowIndex][cellIndex];\n if (currentId !== elementId) {\n return [currentId, [currentRowIndex, cellIndex]];\n }\n currentRowIndex = currentRowIndex + (isReverse ? -1 : 1);\n }\n return [];\n};\n/**\n * @hidden\n */\nexport var findNextIdByCellIndex = function (rowIndex, initialCellIndex, elementId, matrix, isReverse) {\n if (!elementId) {\n return [];\n }\n var currentCellIndex = initialCellIndex + (isReverse ? -1 : 1);\n while (currentCellIndex >= 0 && currentCellIndex < matrix[rowIndex].length) {\n var currentId = matrix[rowIndex][currentCellIndex];\n if (currentId !== elementId) {\n return [currentId, [rowIndex, currentCellIndex]];\n }\n currentCellIndex = currentCellIndex + (isReverse ? -1 : 1);\n }\n return [];\n};\n/**\n * @hidden\n */\nexport var findId = function (navigationMatrix, cellId) {\n if (!cellId) {\n return;\n }\n for (var rowIndex = 0; rowIndex < navigationMatrix.length; rowIndex++) {\n for (var cellIndex = 0; cellIndex < navigationMatrix[rowIndex].length; cellIndex++) {\n if (navigationMatrix[rowIndex][cellIndex] === cellId) {\n return [rowIndex, cellIndex];\n }\n }\n }\n};\n/**\n * @hidden\n */\nexport var getNextNavigationIndex = function (navigationStateRef) {\n return navigationStateRef.current ? navigationStateRef.current.navigationMatrix.length : 0;\n};\n/**\n * @hidden\n */\nexport var getFilterColumnId = function (columnId) {\n return columnId ? \"\" + columnId + KEYBOARD_NAV_FILTER_COL_SUFFIX : '';\n};\n/**\n * @hidden\n */\nexport var tableKeyboardNavigationTools = {\n generateNavigatableId: generateNavigatableId,\n getNavigatableId: getNavigatableId,\n getNavigatableLevel: getNavigatableLevel,\n getNavigatableElement: getNavigatableElement,\n getClosestNavigatableElement: getClosestNavigatableElement,\n getActiveElement: getActiveElement,\n getClosestScope: getClosestScope,\n getHeaderElement: getHeaderElement,\n getBodyElement: getBodyElement,\n getFocusableElements: getFocusableElements,\n getNavigatableElements: getNavigatableElements,\n filterNavigatableElements: filterNavigatableElements,\n focusElement: focusElement,\n getIdPrefix: getIdPrefix,\n isNavigatable: isNavigatable,\n findNextIdByRowIndex: findNextIdByRowIndex,\n findNextIdByCellIndex: findNextIdByCellIndex,\n findId: findId,\n getNextNavigationIndex: getNextNavigationIndex,\n getFilterColumnId: getFilterColumnId\n};\n","import { generateNavigatableId } from '../../navigation/utils';\nimport { ColumnDefaultProps } from '../ColumnProps';\nfunction nextColumn(columns, current) {\n var currentDepth = columns[current].depth;\n var next = null;\n for (var index = current + 1; index < columns.length; index++) {\n if (columns[index].depth === currentDepth) {\n next = columns[index];\n break;\n }\n }\n return next;\n}\nvar getColumnWidth = function (column) {\n var width = column.width ? parseFloat(column.width.toString()) : 0;\n if (!width && column.children && column.children.length) {\n width = column.children.reduce(function (currentSum, child) { return getColumnWidth(child) + currentSum; }, 0);\n }\n return width;\n};\n/**\n * @hidden\n */\nexport function mapColumns(columns) {\n var columnsMap = [[]];\n var maxDepth = 0;\n // set colspans, get maxdepth\n for (var q = columns.length - 1; q >= 0; q--) {\n maxDepth = Math.max(maxDepth, columns[q].depth);\n columns[q].colSpan = columns[q].colSpan || 1;\n if (columns[q].parentIndex !== -1) {\n columns[columns[q].parentIndex].colSpan =\n (columns[columns[q].parentIndex].colSpan || 0) + columns[q].colSpan;\n }\n }\n var colIndexByLevel = [];\n var rowSpan = 1;\n // set rowspan, kFirst, index AND create columnsMap\n columns.forEach(function (column, i) {\n columnsMap[column.depth] = columnsMap[column.depth] || [];\n var needKFirst = false;\n if (columnsMap[column.depth].length === 0) {\n if (rowSpan <= 1) {\n rowSpan = 1 + (column.children.length > 0 ? 0 : maxDepth - column.depth);\n }\n else {\n rowSpan--;\n needKFirst = true;\n }\n }\n column.rowSpan = 1 + (column.children.length > 0 ? 0 : maxDepth - column.depth);\n column.kFirst = needKFirst;\n column.index = columnsMap[column.depth].length;\n columnsMap[column.depth].push(i);\n column.ariaColumnIndex = colIndexByLevel[column.depth] ? colIndexByLevel[column.depth] + 1 : 1;\n for (var ci = column.depth; ci < column.depth + column.rowSpan; ci++) {\n colIndexByLevel[ci] = (colIndexByLevel[ci] || 0) + column.colSpan;\n }\n });\n var stickyLeftWidth = new Array(columnsMap.length).fill(0);\n var width = 0;\n // set left AND create stickyLeftWidth\n columns.forEach(function (column) {\n if (column.locked) {\n column.left = stickyLeftWidth[column.depth];\n width = getColumnWidth(column);\n if (column.children.length === 0) {\n for (var i = column.depth; i < stickyLeftWidth.length; i++) {\n stickyLeftWidth[i] += width;\n }\n }\n else {\n stickyLeftWidth[column.depth] += width;\n }\n }\n });\n var stickyRightWidth = new Array(columnsMap.length).fill(0);\n // set right, rightBorder AND create stickyRightWidth\n for (var i = columns.length - 1; i >= 0; i--) {\n var column = columns[i];\n if (column.locked) {\n column.right = stickyRightWidth[column.depth];\n width = getColumnWidth(column);\n if (column.children.length === 0) {\n for (var j = column.depth; j < stickyRightWidth.length; j++) {\n stickyRightWidth[j] += width;\n }\n }\n else {\n stickyRightWidth[column.depth] += width;\n }\n var next = nextColumn(columns, i);\n column.rightBorder = !(next && next.locked);\n }\n }\n return columnsMap;\n}\n/**\n * @hidden\n */\nexport function readColumns(elements, idInfo, depth) {\n if (depth === void 0) { depth = 0; }\n var columns = [];\n if (!elements || !elements.length) {\n return [];\n }\n elements.forEach(function (columnProps) {\n var children = readColumns(columnProps.children || [], idInfo, depth + 1);\n columns.push(Object.assign({}, { depth: depth }, ColumnDefaultProps, columnProps, {\n id: columnProps.id ? columnProps.id : generateNavigatableId(\"\" + idInfo.prevId++, idInfo.idPrefix, 'column'),\n declarationIndex: columns.length,\n children: children,\n rowSpan: 0,\n colSpan: 0,\n isAccessible: true\n }));\n });\n var comparator = function (a, b) {\n return a.orderIndex === b.orderIndex ?\n a.declarationIndex - b.declarationIndex :\n ((a.orderIndex || 0) - (b.orderIndex || 0));\n };\n columns.sort(comparator);\n if (depth === 0) {\n var ret_1 = [];\n var flat_1 = function (cols, pIndex) {\n return cols.forEach(function (c) {\n c.parentIndex = pIndex;\n flat_1(c.children, ret_1.push(c) - 1);\n });\n };\n flat_1(columns, -1);\n return ret_1;\n }\n return columns;\n}\n/**\n * @hidden\n */\nexport function isRtl(element) {\n return Boolean(element && getComputedStyle(element).direction === 'rtl');\n}\n/**\n * @hidden\n */\nexport function getIndex(event, parent) {\n if (!parent || !event || !event.originalEvent) {\n return -1;\n }\n var target = parent.ownerDocument ? parent.ownerDocument.elementFromPoint(event.clientX, event.originalEvent.clientY) : null;\n while (target && target.parentElement !== parent) {\n target = target.parentElement;\n }\n var children = parent.children;\n for (var i = 0; i < children.length; i++) {\n if (children[i] === target) {\n return i;\n }\n }\n return -1;\n}\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { isRtl } from './utils';\nimport { tableKeyboardNavigationHeaderAttributes } from '../navigation/constants';\n/**\n * @hidden\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = null;\n return _this;\n }\n Header.prototype.componentDidMount = function () {\n var columnResize = this.props.columnResize;\n if (columnResize && columnResize.resizable) {\n columnResize.setIsRtl(isRtl(this.element));\n }\n };\n Header.prototype.render = function () {\n var _this = this;\n return (React.createElement(\"thead\", __assign({ className: \"k-grid-header\", role: 'presentation', ref: function (el) { return _this.element = el; } }, tableKeyboardNavigationHeaderAttributes),\n this.props.headerRow,\n this.props.filterRow));\n };\n return Header;\n}(React.Component));\nexport { Header };\n","var __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};\nimport * as React from 'react';\n/**\n * @hidden\n */\nexport function HeaderCell(props) {\n var clickProps = props.onClick ? {\n onClick: props.onClick\n } : {};\n var defaultRendering = (React.createElement(\"span\", __assign({ className: 'k-link' }, clickProps),\n React.createElement(\"span\", { className: 'k-column-title' }, props.title || props.field || '\\u00A0'),\n props.children));\n return props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering;\n}\n","/**\n * @hidden\n */\nexport var normalize = function () {\n var settings = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n settings[_i] = arguments[_i];\n }\n return Object.assign.apply(Object, [{ allowUnsort: true, mode: 'single' }].concat(settings));\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Draggable } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar ColumnResizer = /** @class */ (function (_super) {\n __extends(ColumnResizer, _super);\n function ColumnResizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.onDrag = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element) {\n _this.props.resize(data.event, element, false);\n }\n };\n /**\n * @hidden\n */\n _this.onRelease = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element) {\n _this.props.resize(data.event, element, true);\n }\n };\n return _this;\n }\n ColumnResizer.prototype.render = function () {\n var _this = this;\n return (React.createElement(Draggable, { onDrag: this.onDrag, onRelease: this.onRelease, ref: function (component) { _this.draggable = component; } },\n React.createElement(\"span\", { className: \"k-column-resizer\", draggable: false })));\n };\n return ColumnResizer;\n}(React.PureComponent));\nexport { ColumnResizer };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Draggable } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar ColumnDraggable = /** @class */ (function (_super) {\n __extends(ColumnDraggable, _super);\n function ColumnDraggable() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.onPress = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.pressHandler) {\n _this.props.pressHandler(data.event, element);\n }\n };\n /**\n * @hidden\n */\n _this.onDrag = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.dragHandler) {\n _this.props.dragHandler(data.event, element);\n }\n };\n /**\n * @hidden\n */\n _this.onRelease = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.releaseHandler) {\n _this.props.releaseHandler(data.event);\n }\n };\n return _this;\n }\n ColumnDraggable.prototype.render = function () {\n var _this = this;\n return (React.createElement(Draggable, { onPress: this.onPress, onDrag: this.onDrag, onRelease: this.onRelease, ref: function (component) { _this.draggable = component; } },\n React.createElement(\"tr\", { \"aria-rowindex\": this.props.ariaRowIndex, role: 'row' }, this.props.children)));\n };\n return ColumnDraggable;\n}(React.PureComponent));\nexport { ColumnDraggable };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { HeaderCell } from './HeaderCell';\nimport { normalize } from './SortSettings';\nimport { ColumnResizer } from '../drag/ColumnResizer';\nimport { ColumnDraggable } from '../drag/ColumnDraggable';\nimport { HeaderThElement } from './HeaderThElement';\nimport { classNames, Keys } from '@progress/kendo-react-common';\nimport { registerForLocalization, provideLocalizationService as intl } from '@progress/kendo-react-intl';\nimport { messages, sortAriaLabel } from '../messages';\n/**\n * @hidden\n */\nvar sortSeqMap = {\n true: { 'asc': 'desc', 'desc': '', '': 'asc' },\n false: { 'asc': 'desc', 'desc': 'asc', '': 'asc' }\n};\n/**\n * @hidden\n */\nvar ariaSortMap = {\n 'none': 'none',\n 'asc': 'ascending',\n 'desc': 'descending'\n};\n/**\n * @hidden\n */\nvar HeaderRow = /** @class */ (function (_super) {\n __extends(HeaderRow, _super);\n function HeaderRow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cellClick = function (e, column) {\n e.preventDefault();\n if (!_this.props.sortChange) {\n return;\n }\n var _a = normalize(_this.props.sortable || false, column.sortable || false), allowUnsort = _a.allowUnsort, mode = _a.mode;\n var oldDescriptor = (_this.props.sort || []).filter(function (d) { return d.field === column.field; })[0];\n var dir = sortSeqMap[allowUnsort][oldDescriptor && oldDescriptor.dir || ''];\n var newDescriptor = (mode === 'single') ?\n [] : (_this.props.sort || []).filter(function (d) { return d.field !== column.field; });\n if (dir !== '' && column.field) {\n newDescriptor.push({ field: column.field, dir: dir });\n }\n _this.props.sortChange(e, newDescriptor, column.field);\n };\n _this.cellKeyDown = function (event, column) {\n if (event.isDefaultPrevented()) {\n return;\n }\n if (event.keyCode === Keys.enter) {\n _this.cellClick(event, column);\n }\n };\n _this.cells = function (rowIndexes) { return rowIndexes.map(function (columnIndex, index) {\n var column = _this.props.columns[columnIndex];\n var columnResize = _this.props.columnResize;\n var resizable = columnResize && columnResize.resizable && column.resizable;\n var sortable = _this.props.sortable && column.sortable;\n var sortIndex = _this.props.sort ? _this.props.sort.findIndex(function (s) { return s.field === column.field; }) : -1;\n var sortDir = sortIndex >= 0 ? ((_this.props.sort)[sortIndex].dir || 'none') : 'none';\n var headerCellProps = {\n field: column.field,\n onClick: sortable && (function (e) { return _this.cellClick(e, column); }) || undefined,\n selectionChange: _this.props.selectionChange,\n title: column.title,\n selectionValue: column.headerSelectionValue,\n render: _this.props.cellRender,\n children: _this.sortIcon(sortIndex)\n };\n var ColumnMenu = column.columnMenu || _this.props.columnMenu;\n var className = classNames({\n 'k-first': column.kFirst,\n 'k-filterable': Boolean(ColumnMenu),\n 'k-header': true,\n 'k-grid-header-sticky': column.locked,\n 'k-sorted': _this.props.sort && _this.props.sort.some(function (descriptor) { return descriptor.field === column.field; })\n }, column.headerClassName);\n var style = (column.locked !== undefined) ? {\n left: column.left,\n right: column.right,\n borderRightWidth: column.rightBorder ? '1px' : ''\n } : {};\n var sortLabel = intl(_this).toLanguageString(sortAriaLabel, messages[sortAriaLabel]);\n var ariaAttrs = column.isAccessible ? {\n ariaSort: sortable ? ariaSortMap[sortDir] : undefined,\n role: 'columnheader',\n ariaColumnIndex: column.ariaColumnIndex,\n ariaSelected: false,\n ariaDescription: sortable ? sortLabel : ''\n } : {\n role: 'presentation'\n };\n var columnMenuProps = {\n sort: _this.props.sort,\n onSortChange: _this.props.sortChange,\n filter: _this.props.columnMenuFilter,\n onFilterChange: _this.props.columnMenuFilterChange,\n field: column.field\n };\n return (React.createElement(HeaderThElement, __assign({ key: index, colSpan: column.colSpan, rowSpan: column.rowSpan, className: className, style: style, columnId: column.id, navigatable: column.navigatable, onKeyDown: sortable && (function (e) { return _this.cellKeyDown(e, column); }) || undefined }, ariaAttrs),\n column.headerCell && React.createElement(column.headerCell, __assign({}, headerCellProps)),\n !column.headerCell && (React.createElement(\"span\", { className: 'k-cell-inner' },\n React.createElement(HeaderCell, __assign({}, headerCellProps)),\n ColumnMenu && (React.createElement(ColumnMenu, __assign({}, columnMenuProps))))),\n columnResize && resizable &&\n React.createElement(ColumnResizer, { key: \"ColumnResizer\", resize: function (e, element, end) { return columnResize.dragHandler(e, column, element, end); } })));\n }); };\n return _this;\n }\n HeaderRow.prototype.sortIcon = function (sortIndex) {\n if (!this.props.sort) {\n return null;\n }\n return sortIndex >= 0 && [\n React.createElement(\"span\", { key: 1, className: 'k-icon k-i-sort-' + this.props.sort[sortIndex].dir + '-sm' }),\n this.props.sort.length > 1 && React.createElement(\"span\", { key: 2, className: \"k-sort-order\" }, sortIndex + 1)\n ];\n };\n HeaderRow.prototype.render = function () {\n var _this = this;\n return this.props.columnsMap.map(function (rowIndexes, i) {\n return _this.props.pressHandler && (React.createElement(ColumnDraggable, { key: i, pressHandler: _this.props.pressHandler, dragHandler: _this.props.dragHandler, releaseHandler: _this.props.releaseHandler, ariaRowIndex: i + 1 }, _this.cells(rowIndexes))) || React.createElement(\"tr\", { \"aria-rowindex\": i + 1, role: 'row' }, _this.cells(rowIndexes));\n });\n };\n return HeaderRow;\n}(React.Component));\nexport { HeaderRow };\nregisterForLocalization(HeaderRow);\n","/**\n * @hidden\n */\nvar ColumnResize = /** @class */ (function () {\n function ColumnResize(triggerResize) {\n var _this = this;\n /**\n * The settings for resizing the Grid.\n */\n this.resizable = false;\n this.isRtl = false;\n this.setIsRtl = function (isRtl) {\n _this.isRtl = isRtl;\n };\n this.onResize = triggerResize;\n this.dragHandler = this.dragHandler.bind(this);\n }\n ColumnResize.prototype.dragHandler = function (event, column, dragCue, end) {\n var e = event.originalEvent;\n if (!end) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n var tdElement = dragCue.parentElement;\n if (!tdElement || !tdElement.parentElement) {\n return;\n }\n var oldWidth = tdElement.clientWidth;\n var newWidth;\n if (this.isRtl) {\n newWidth = (dragCue.getBoundingClientRect().right - (dragCue.offsetWidth / 2)) - event.clientX;\n newWidth += oldWidth;\n }\n else {\n newWidth = oldWidth + event.clientX - dragCue.getBoundingClientRect().left - (dragCue.offsetWidth / 2);\n }\n if (!end && Math.abs(newWidth - oldWidth) < 1) {\n return;\n }\n this.setWidths(column, Math.floor(newWidth) / oldWidth);\n var index = this.columns.filter(function (c) { return !c.children.length; }).indexOf(column);\n this.onResize(index, oldWidth, newWidth, e, end);\n };\n ColumnResize.prototype.setWidths = function (column, coef) {\n var indexInOriginal = this.columns.indexOf(column);\n var toAdjust = [];\n var more = column.children.length;\n for (var i = indexInOriginal + 1; more > 0 && i < this.columns.length; i++, more--) {\n var cc = this.columns[i];\n if (!cc.children.length) {\n toAdjust.push(cc);\n }\n else {\n more += cc.children.length;\n }\n }\n if (toAdjust.length === 0) {\n toAdjust.push(column);\n }\n toAdjust.forEach(function (colToAdjust) {\n var targetWidth = colToAdjust.width ? parseFloat(colToAdjust.width.toString()) * coef : 0;\n var min = colToAdjust.minResizableWidth === undefined ? 10 : colToAdjust.minResizableWidth;\n if (targetWidth < min) {\n targetWidth = min;\n }\n colToAdjust.width = Math.floor(targetWidth);\n });\n this.updateColElements(toAdjust);\n };\n ColumnResize.prototype.updateColElements = function (affectedColumns) {\n var columns = this.columns.filter(function (c) { return !c.children.length; });\n var difference = 1e-10;\n for (var i = 0; i < affectedColumns.length; i++) {\n var colIndex = columns.indexOf(affectedColumns[i]);\n var currentColumnFloatWidth = parseFloat((affectedColumns[i].width || 0).toString());\n difference += currentColumnFloatWidth - Math.floor(currentColumnFloatWidth);\n var currentWidth = Math.floor(currentColumnFloatWidth) + Math.floor(difference);\n difference -= Math.floor(difference);\n this.setColWidth(this.colGroupMain && this.colGroupMain.children[colIndex], currentWidth);\n this.setColWidth(this.colGroupHeader && this.colGroupHeader.children[colIndex], currentWidth);\n this.setColWidth(this.colGroupFooter && this.colGroupFooter.children[colIndex], currentWidth);\n }\n };\n ColumnResize.prototype.setColWidth = function (col, width) {\n if (col) {\n col.style.width = width + 'px';\n }\n };\n return ColumnResize;\n}());\nexport { ColumnResize };\n","import { getIndex } from './../header/';\n/**\n * @hidden\n */\nvar CommonDragLogic = /** @class */ (function () {\n function CommonDragLogic(columnReorder, groupReorder, columnToGroup) {\n var _this = this;\n this.reorderable = false;\n this.groupable = false;\n this.startColumn = -1;\n this.startGroup = -1;\n this.currentColumn = -1;\n this.currentGroup = -1;\n this.dropElementClue = null;\n this.dragElementClue = null;\n this.groupPanelDivElement = null;\n this.refGroupPanelDiv = function (e) {\n _this.groupPanelDivElement = e;\n };\n this.refDropElementClue = function (e) {\n _this.dropElementClue = e;\n };\n this.refDragElementClue = function (e) {\n _this.dragElementClue = e;\n };\n this.pressHandler = function (event, element) {\n if (!event.isTouch) {\n event.originalEvent.preventDefault();\n // could be related to:\n // https://github.com/telerik/kendo-react/issues/773\n // but it fixes drag column sorts the column\n // the problem is that this blocks focus\n }\n var startColumn = _this.getColumnIndex(event, element);\n _this.startGroup = _this.getGroupIndex(event);\n if (startColumn >= 0) {\n var col = _this.columns[startColumn];\n if (col.reorderable && _this.reorderable || col.groupable && _this.groupable) {\n _this.startColumn = startColumn;\n }\n }\n };\n this.dragHandler = function (event, element) {\n if (!event.isTouch) {\n event.originalEvent.preventDefault();\n }\n event.originalEvent.stopPropagation();\n if (_this.startColumn === -1 && _this.startGroup === -1) {\n return;\n }\n _this.currentColumn = _this.getColumnIndex(event, element);\n _this.currentGroup = _this.getGroupIndex(event);\n if (_this.groupPanelDivElement && _this.startGroup >= 0) {\n _this.currentGroup = Math.min(_this.currentGroup, _this.groupPanelDivElement.children.length - 2);\n }\n var invalidIndex = !_this.isValid();\n if (invalidIndex) {\n _this.currentColumn = -1;\n _this.currentGroup = -1;\n }\n var targetElement = (_this.currentColumn >= 0) ?\n element.children[_this.columns[_this.currentColumn].index] :\n _this.groupPanelDivElement && _this.groupPanelDivElement.children[_this.currentGroup];\n _this.updateDragElementClue(event, element, targetElement, invalidIndex);\n _this.updateDropElementClue(event, element, targetElement, invalidIndex);\n };\n this.releaseHandler = function (event) {\n var prevColumnIndex = _this.startColumn;\n var nextColumnIndex = _this.currentColumn;\n var prevGroupIndex = _this.startGroup;\n var nextGroupIndex = _this.currentGroup;\n if (_this.dropElementClue) {\n _this.dropElementClue.setState({ visible: false });\n }\n if (_this.dragElementClue) {\n _this.dragElementClue.setState({ visible: false });\n }\n var isValid = _this.isValid();\n _this.startColumn = _this.startGroup = _this.currentColumn = _this.currentGroup = -1;\n if (!isValid) {\n return;\n }\n if (prevColumnIndex >= 0 && nextColumnIndex >= 0) {\n _this.columnReorder(prevColumnIndex, nextColumnIndex, event.originalEvent);\n }\n else if (prevGroupIndex >= 0 && nextGroupIndex >= 0) {\n _this.groupReorder(prevGroupIndex, nextGroupIndex, event.originalEvent);\n }\n else if (prevColumnIndex >= 0 && nextGroupIndex >= 0) {\n _this.columnToGroup(prevColumnIndex, nextGroupIndex, event.originalEvent);\n }\n };\n this.columnReorder = columnReorder;\n this.groupReorder = groupReorder;\n this.columnToGroup = columnToGroup;\n }\n CommonDragLogic.prototype.getColumnIndex = function (event, parent) {\n if (!parent || (parent.parentElement === this.groupPanelDivElement)) {\n return -1;\n }\n var index = getIndex(event, parent);\n if (index === -1) {\n return -1;\n }\n var _loop_1 = function (i) {\n if (parent.parentNode.children[i] === parent) {\n return { value: this_1.columns.findIndex(function (c) { return ((c.index === index) && (c.depth === i)); }) };\n }\n };\n var this_1 = this;\n for (var i = 0; i < parent.parentNode.children.length; i++) {\n var state_1 = _loop_1(i);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n return -1;\n };\n CommonDragLogic.prototype.getGroupIndex = function (event) {\n return getIndex(event, this.groupPanelDivElement);\n };\n CommonDragLogic.prototype.isValid = function () {\n if (this.startGroup >= 0) {\n // group can be moved into group only\n return this.currentGroup >= 0 && this.currentGroup !== this.startGroup;\n }\n if (this.startColumn === -1) {\n return false;\n }\n if (this.currentGroup >= 0) {\n // column to group is possible\n return this.columns[this.startColumn].groupable === true && this.groupable === true;\n }\n // reorder is possible\n return this.reorderable === true &&\n this.currentColumn >= 0 &&\n this.currentColumn !== this.startColumn &&\n this.columns[this.startColumn].reorderable === true &&\n this.columns[this.currentColumn].parentIndex === this.columns[this.startColumn].parentIndex;\n };\n CommonDragLogic.prototype.updateDragElementClue = function (event, element, targetElement, invalidIndex) {\n if (!this.dragElementClue) {\n return;\n }\n var innerText = this.startColumn >= 0 ?\n element.children[this.columns[this.startColumn].index].innerText :\n element.innerText;\n this.dragElementClue.setState({\n visible: true,\n top: (event.pageY + 10),\n left: event.pageX,\n innerText: innerText,\n status: (invalidIndex || !targetElement) ? 'k-i-cancel' : 'k-i-add'\n });\n };\n CommonDragLogic.prototype.updateDropElementClue = function (event, element, targetElement, invalidIndex) {\n if (!this.dropElementClue) {\n return;\n }\n if (invalidIndex || !targetElement) {\n this.dropElementClue.setState({ visible: false });\n return;\n }\n var rect = targetElement.getBoundingClientRect();\n var left = rect.left + event.pageX - event.clientX - 6;\n if (this.currentColumn > this.startColumn || this.currentGroup > this.startGroup && this.startGroup !== -1) {\n left += rect.width;\n }\n var top = rect.top + event.pageY - event.clientY;\n this.dropElementClue.setState({\n visible: true,\n top: top,\n left: left,\n height: (this.currentColumn >= 0) ? element.clientHeight : rect.height\n });\n };\n return CommonDragLogic;\n}());\nexport { CommonDragLogic };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DragClue = /** @class */ (function (_super) {\n __extends(DragClue, _super);\n function DragClue(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n visible: false,\n top: 0,\n left: 0,\n innerText: '',\n status: 'k-i-cancel'\n };\n _this.hiddenElementRef = React.createRef();\n return _this;\n }\n DragClue.prototype.render = function () {\n var hiddenElement = this.hiddenElementRef.current;\n var dragClue = this.state.visible && canUseDOM && createPortal((React.createElement(\"div\", { className: \"k-header k-drag-clue\", style: {\n display: 'block',\n position: 'absolute',\n zIndex: 20000,\n padding: '8px 12px',\n top: this.state.top + 'px',\n left: this.state.left + 'px'\n } },\n React.createElement(\"span\", { className: 'k-icon k-drag-status ' + this.state.status + ' k-icon-with-modifier' },\n React.createElement(\"span\", { className: \"k-icon k-icon-modifier\" })),\n this.state.innerText)), (hiddenElement && hiddenElement.ownerDocument ?\n hiddenElement.ownerDocument.body :\n document.body));\n return (React.createElement(React.Fragment, null,\n dragClue,\n React.createElement(\"div\", { ref: this.hiddenElementRef, style: { display: 'none' } })));\n };\n return DragClue;\n}(React.PureComponent));\nexport { DragClue };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DropClue = /** @class */ (function (_super) {\n __extends(DropClue, _super);\n function DropClue(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n height: 0,\n visible: false,\n left: 0,\n top: 0\n };\n _this.hiddenElementRef = React.createRef();\n return _this;\n }\n DropClue.prototype.render = function () {\n var hiddenElement = this.hiddenElementRef.current;\n var dropClue = this.state.visible && canUseDOM && createPortal((React.createElement(\"div\", { className: \"k-grouping-dropclue\", style: {\n zIndex: 10000,\n display: 'block',\n top: this.state.top + 'px',\n left: this.state.left + 'px',\n height: this.state.height + 'px'\n } })), (hiddenElement && hiddenElement.ownerDocument ?\n hiddenElement.ownerDocument.body :\n document.body));\n return (React.createElement(React.Fragment, null,\n dropClue,\n React.createElement(\"div\", { ref: this.hiddenElementRef, style: { display: 'none' } })));\n };\n return DropClue;\n}(React.PureComponent));\nexport { DropClue };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Input } from '@progress/kendo-react-inputs';\n/**\n * The TextFilter component used for editing text value of FilterDescriptor object.\n */\nvar TextFilter = /** @class */ (function (_super) {\n __extends(TextFilter, _super);\n function TextFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onChange = function (event) {\n _this.props.onFilterChange.call(undefined, {\n nextFilter: __assign({}, _this.props.filter, { value: event.value })\n });\n };\n return _this;\n }\n /**\n * @hidden\n */\n TextFilter.prototype.render = function () {\n return (React.createElement(Input, { value: this.props.filter.value || '', onChange: this.onChange }));\n };\n /**\n * @hidden\n */\n TextFilter.propTypes = {\n filter: PropTypes.object.isRequired,\n onFilterChange: PropTypes.func.isRequired\n };\n return TextFilter;\n}(React.Component));\nexport { TextFilter };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { NumericTextBox } from '@progress/kendo-react-inputs';\n/**\n * The NumericFilter component used for editing numeric value of FilterDescriptor object.\n */\nvar NumericFilter = /** @class */ (function (_super) {\n __extends(NumericFilter, _super);\n function NumericFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onChange = function (event) {\n _this.props.onFilterChange.call(undefined, {\n nextFilter: __assign({}, _this.props.filter, { value: event.value })\n });\n };\n return _this;\n }\n /**\n * @hidden\n */\n NumericFilter.prototype.render = function () {\n var filter = this.props.filter;\n return (React.createElement(NumericTextBox, { value: typeof filter.value === 'number' ? filter.value : null, onChange: this.onChange }));\n };\n /**\n * @hidden\n */\n NumericFilter.propTypes = {\n filter: PropTypes.object.isRequired,\n onFilterChange: PropTypes.func.isRequired\n };\n return NumericFilter;\n}(React.Component));\nexport { NumericFilter };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { DatePicker } from '@progress/kendo-react-dateinputs';\n/**\n * The DateFilter component used for editing date value of FilterDescriptor object.\n */\nvar DateFilter = /** @class */ (function (_super) {\n __extends(DateFilter, _super);\n function DateFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onChange = function (event) {\n _this.props.onFilterChange.call(undefined, {\n nextFilter: __assign({}, _this.props.filter, { value: event.value })\n });\n };\n return _this;\n }\n /**\n * @hidden\n */\n DateFilter.prototype.render = function () {\n var filter = this.props.filter;\n return (React.createElement(DatePicker, { value: filter.value || null, onChange: this.onChange }));\n };\n /**\n * @hidden\n */\n DateFilter.propTypes = {\n filter: PropTypes.object.isRequired,\n onFilterChange: PropTypes.func.isRequired\n };\n return DateFilter;\n}(React.Component));\nexport { DateFilter };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { messages } from './../../messages';\n/**\n * The EnumFilter component used for editing the value of FilterDescriptor object.\n * It renders a DropDownList and allows you to choose a value from the predefined list.\n */\nvar EnumFilter = /** @class */ (function (_super) {\n __extends(EnumFilter, _super);\n function EnumFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onChange = function (event) {\n _this.props.onFilterChange.call(undefined, {\n nextFilter: __assign({}, _this.props.filter, { value: event.value.value })\n });\n };\n return _this;\n }\n /**\n * @hidden\n */\n EnumFilter.prototype.render = function () {\n var locService = provideLocalizationService(this);\n var _a = this.props, filter = _a.filter, _b = _a.data, data = _b === void 0 ? [] : _b, defaultItem = _a.defaultItem;\n var locData = data.map(function (item) { return (__assign({}, item, { text: locService.toLanguageString(item.text, messages[item.text] || item.text) })); });\n return (React.createElement(DropDownList, { value: locData.find(function (i) { return i.value === filter.value; }) || null, onChange: this.onChange, defaultItem: defaultItem, data: locData, textField: \"text\" }));\n };\n /**\n * @hidden\n */\n EnumFilter.propTypes = {\n filter: PropTypes.object.isRequired,\n onFilterChange: PropTypes.func.isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({ text: PropTypes.string, value: PropTypes.any })),\n defaultItem: PropTypes.any\n };\n return EnumFilter;\n}(React.Component));\nexport { EnumFilter };\nregisterForLocalization(EnumFilter);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { EnumFilter } from './EnumFilter';\nimport { filterIsTrue, filterIsFalse } from '../../messages';\n/**\n * The BooleanFilter component used for editing boolean value of FilterDescriptor object.\n */\nvar BooleanFilter = /** @class */ (function (_super) {\n __extends(BooleanFilter, _super);\n function BooleanFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.data = [{ text: filterIsTrue, value: true }, { text: filterIsFalse, value: false }];\n return _this;\n }\n /**\n * @hidden\n */\n BooleanFilter.prototype.render = function () {\n return (React.createElement(EnumFilter, { filter: this.props.filter, onFilterChange: this.props.onFilterChange, data: this.props.data || this.data, defaultItem: this.props.defaultItem }));\n };\n /**\n * @hidden\n */\n BooleanFilter.propTypes = {\n filter: PropTypes.object.isRequired,\n onFilterChange: PropTypes.func.isRequired,\n data: PropTypes.arrayOf(PropTypes.shape({ text: PropTypes.string, value: PropTypes.any })),\n defaultItem: PropTypes.any\n };\n return BooleanFilter;\n}(React.Component));\nexport { BooleanFilter };\n","import { filterEqOperator, filterNotEqOperator, filterIsNullOperator, filterIsNotNullOperator, filterIsEmptyOperator, filterIsNotEmptyOperator, filterStartsWithOperator, filterContainsOperator, filterNotContainsOperator, filterEndsWithOperator, filterGteOperator, filterGtOperator, filterLteOperator, filterLtOperator, filterAfterOrEqualOperator, filterAfterOperator, filterBeforeOperator, filterBeforeOrEqualOperator } from './../messages';\nvar textOperators = [\n { text: filterContainsOperator, operator: 'contains' },\n { text: filterNotContainsOperator, operator: 'doesnotcontain' },\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' },\n { text: filterStartsWithOperator, operator: 'startswith' },\n { text: filterEndsWithOperator, operator: 'endswith' },\n { text: filterIsNullOperator, operator: 'isnull' },\n { text: filterIsNotNullOperator, operator: 'isnotnull' },\n { text: filterIsEmptyOperator, operator: 'isempty' },\n { text: filterIsNotEmptyOperator, operator: 'isnotempty' }\n];\nvar numericOperators = [\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' },\n { text: filterGteOperator, operator: 'gte' },\n { text: filterGtOperator, operator: 'gt' },\n { text: filterLteOperator, operator: 'lte' },\n { text: filterLtOperator, operator: 'lt' },\n { text: filterIsNullOperator, operator: 'isnull' },\n { text: filterIsNotNullOperator, operator: 'isnotnull' }\n];\nvar dateOperators = [\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' },\n { text: filterAfterOrEqualOperator, operator: 'gte' },\n { text: filterAfterOperator, operator: 'gt' },\n { text: filterBeforeOperator, operator: 'lt' },\n { text: filterBeforeOrEqualOperator, operator: 'lte' },\n { text: filterIsNullOperator, operator: 'isnull' },\n { text: filterIsNotNullOperator, operator: 'isnotnull' }\n];\nvar booleanOperators = [\n { text: filterEqOperator, operator: 'eq' },\n { text: filterNotEqOperator, operator: 'neq' }\n];\n/**\n * Represents the operators for the TextFilter, NumericFilter, DateFilter and BooleanFilter components.\n *\n * The text field of each operator object will be resolved according to the\n * [localization messages]({% slug globalization_datatools %}#toc-messages).\n */\nvar Operators = /** @class */ (function () {\n function Operators() {\n }\n Object.defineProperty(Operators, \"text\", {\n /**\n * An array containing the operators for the TextFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.containsOperator', operator: 'contains' }\n * - { text: 'filter.notContainsOperator', operator: 'doesnotcontain' }\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n * - { text: 'filter.startsWithOperator', operator: 'startswith' }\n * - { text: 'filter.endsWithOperator', operator: 'endswith' }\n * - { text: 'filter.isNullOperator', operator: 'isnull' }\n * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }\n * - { text: 'filter.isEmptyOperator', operator: 'isempty' }\n * - { text: 'filter.isNotEmptyOperator', operator: 'isnotempty' }\n */\n get: function () {\n return textOperators.slice();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Operators, \"numeric\", {\n /**\n * An array containing the operators for the NumericFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n * - { text: 'filter.gteOperator', operator: 'gte' }\n * - { text: 'filter.gtOperator', operator: 'gt' }\n * - { text: 'filter.lteOperator', operator: 'lte' }\n * - { text: 'filter.ltOperator', operator: 'lt' }\n * - { text: 'filter.isNullOperator', operator: 'isnull' }\n * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }\n */\n get: function () {\n return numericOperators.slice();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Operators, \"date\", {\n /**\n * An array containing the operators for the DateFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n * - { text: 'filter.afterOrEqualOperator', operator: 'gte' }\n * - { text: 'filter.afterOperator', operator: 'gt' }\n * - { text: 'filter.beforeOperator', operator: 'lt' }\n * - { text: 'filter.beforeOrEqualOperator', operator: 'lte' }\n * - { text: 'filter.isNullOperator', operator: 'isnull' }\n * - { text: 'filter.isNotNullOperator', operator: 'isnotnull' }\n */\n get: function () {\n return dateOperators.slice();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Operators, \"boolean\", {\n /**\n * An array containing the operators for the BooleanFilter component.\n *\n * The operators are:\n *\n * - { text: 'filter.eqOperator', operator: 'eq' }\n * - { text: 'filter.notEqOperator', operator: 'neq' }\n */\n get: function () {\n return booleanOperators.slice();\n },\n enumerable: true,\n configurable: true\n });\n return Operators;\n}());\nexport { Operators };\n/**\n * @hidden\n */\nexport var stringOperator = function (operator) {\n return operator === 'contains' || operator === 'doesnotcontain' || operator === 'startswith' || operator === 'endswith';\n};\n/**\n * @hidden\n */\nexport var unaryOperator = function (operator) {\n return operator === 'isnull' || operator === 'isnotnull' || operator === 'isempty' || operator === 'isnotempty';\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Button, Toolbar, ToolbarItem } from '@progress/kendo-react-buttons';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { unaryOperator, stringOperator } from './operators';\nimport { messages, filterClose } from '../messages';\nvar setInitialValue = function (filter) {\n if (filter.value === undefined && !unaryOperator(filter.operator)) {\n filter.value = stringOperator(filter.operator) ? '' : null;\n }\n};\n/**\n * @hidden\n */\nvar Expression = /** @class */ (function (_super) {\n __extends(Expression, _super);\n function Expression() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onFieldChange = function (event) {\n var nextFieldName = event.value.name;\n var nextField = _this.props.fields.find(function (f) { return f.name === nextFieldName; });\n var prevFilter = _this.props.filter;\n var operator = (nextField && !nextField.operators.some(function (o) { return o.operator === prevFilter.operator; })) ?\n nextField.operators[0].operator : prevFilter.operator;\n var nextFilter = {\n field: nextFieldName,\n operator: operator\n };\n setInitialValue(nextFilter);\n _this.triggerOnFilterChange(prevFilter, nextFilter, event);\n };\n _this.onOperatorChange = function (event) {\n var operator = event.value.operator;\n var prevFilter = _this.props.filter;\n var nextFilter;\n if (unaryOperator(operator)) {\n var value = prevFilter.value, prevFilterNoValue = __rest(prevFilter, [\"value\"]);\n nextFilter = __assign({}, prevFilterNoValue, { operator: operator });\n }\n else {\n nextFilter = __assign({}, prevFilter, { operator: operator });\n }\n setInitialValue(nextFilter);\n _this.triggerOnFilterChange(prevFilter, nextFilter, event);\n };\n _this.onInputChange = function (event) {\n var prevFilter = _this.props.filter;\n var nextFilter = event.nextFilter;\n if (unaryOperator(nextFilter.operator)) {\n var field = _this.props.fields.find(function (f) { return f.name === nextFilter.field; });\n nextFilter = __assign({}, nextFilter, { operator: (field && field.operators[0].operator) || nextFilter.operator });\n }\n _this.triggerOnFilterChange(prevFilter, nextFilter, event);\n };\n _this.triggerOnFilterChange = function (prevFilter, nextFilter, event) {\n var changeEvent = {\n prevFilter: prevFilter,\n nextFilter: nextFilter,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onChange.call(undefined, changeEvent);\n };\n _this.onFilterRemove = function (event) {\n var removeEvent = {\n filter: _this.props.filter,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onRemove.call(undefined, removeEvent);\n };\n return _this;\n }\n Expression.prototype.render = function () {\n var _a = this.props, fields = _a.fields, filter = _a.filter;\n var field = fields.find(function (f) { return f.name === filter.field; });\n var locService = provideLocalizationService(this);\n var operators = ((field && field.operators) || [])\n .map(function (o) { return (__assign({}, o, { text: locService.toLanguageString(o.text, messages[o.text] || o.text) })); });\n return (React.createElement(\"div\", { className: \"k-filter-toolbar\" },\n React.createElement(Toolbar, { keyboardNavigation: false },\n React.createElement(ToolbarItem, { className: \"k-filter-field\" },\n React.createElement(DropDownList, { className: \"k-filter-dropdown\", data: fields, textField: \"label\", value: fields.find(function (f) { return f.name === filter.field; }), onChange: this.onFieldChange })),\n React.createElement(ToolbarItem, { className: \"k-filter-operator\" },\n React.createElement(DropDownList, { data: operators, textField: \"text\", value: operators.find(function (o) { return o.operator === filter.operator; }), onChange: this.onOperatorChange })),\n React.createElement(ToolbarItem, { className: \"k-filter-value\" }, field && React.createElement(field.filter, { filter: filter, onFilterChange: this.onInputChange })),\n React.createElement(ToolbarItem, null,\n React.createElement(Button, { title: locService.toLanguageString(filterClose, messages[filterClose]), icon: \"close\", look: \"flat\", type: \"button\", onClick: this.onFilterRemove })))));\n };\n Expression.propTypes = {\n filter: PropTypes.object.isRequired,\n fields: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n onRemove: PropTypes.func.isRequired\n };\n return Expression;\n}(React.Component));\nexport { Expression };\nregisterForLocalization(Expression);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { isCompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { Button, Toolbar, ToolbarItem, ButtonGroup } from '@progress/kendo-react-buttons';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { Expression } from './Expression';\nimport { stringOperator } from './operators';\nimport { messages, filterAndLogic, filterOrLogic, filterAddExpression, filterAddGroup, filterClose } from '../messages';\n/**\n * @hidden\n */\nvar Group = /** @class */ (function (_super) {\n __extends(Group, _super);\n function Group() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onGroupRemove = function () {\n _this.props.onRemove.call(undefined, {\n filter: _this.props.filter\n });\n };\n _this.onAddExpression = function () {\n var prevFilter = _this.props.filter;\n var firstField = _this.props.fields[0];\n var newExpression = { field: firstField.name, operator: firstField.operators[0].operator };\n newExpression.value = stringOperator(newExpression.operator) ? '' : null;\n _this.props.onChange.call(undefined, {\n nextFilter: __assign({}, prevFilter, { filters: prevFilter.filters.concat([newExpression]) }),\n prevFilter: prevFilter\n });\n };\n _this.onAddGroup = function () {\n var prevFilter = _this.props.filter;\n _this.props.onChange.call(undefined, {\n nextFilter: __assign({}, prevFilter, { filters: prevFilter.filters.concat([__assign({}, _this.props.defaultGroupFilter)]) }),\n prevFilter: prevFilter\n });\n };\n _this.onLogicAnd = function () { return _this.changeLogic('and'); };\n _this.onLogicOr = function () { return _this.changeLogic('or'); };\n _this.changeLogic = function (logic) {\n var prevFilter = _this.props.filter;\n if (prevFilter.logic !== logic) {\n _this.props.onChange.call(undefined, {\n nextFilter: __assign({}, prevFilter, { logic: logic }),\n prevFilter: prevFilter\n });\n }\n };\n _this.replaceFilter = function (prevFilter, nextFilter) {\n var filter = _this.props.filter;\n var filters = filter.filters.map(function (f) { return f === prevFilter ? nextFilter : f; });\n return __assign({}, filter, { filters: filters });\n };\n _this.onChange = function (event) {\n var nextFilter = _this.replaceFilter(event.prevFilter, event.nextFilter);\n var changeEvent = {\n nextFilter: nextFilter,\n prevFilter: _this.props.filter,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onChange.call(undefined, changeEvent);\n };\n _this.onRemove = function (event) {\n var prevFilter = _this.props.filter;\n var filters = prevFilter.filters.filter(function (f) { return f !== event.filter; });\n var changeEvent = {\n nextFilter: __assign({}, prevFilter, { filters: filters }),\n prevFilter: prevFilter,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onChange.call(undefined, changeEvent);\n };\n return _this;\n }\n Group.prototype.render = function () {\n var _this = this;\n var _a = this.props, fields = _a.fields, filter = _a.filter;\n var locService = provideLocalizationService(this);\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"k-filter-toolbar\" },\n React.createElement(Toolbar, { keyboardNavigation: false },\n React.createElement(ToolbarItem, null,\n React.createElement(ButtonGroup, null,\n React.createElement(Button, { togglable: true, onClick: this.onLogicAnd, selected: filter.logic === 'and', type: \"button\" }, locService.toLanguageString(filterAndLogic, messages[filterAndLogic])),\n React.createElement(Button, { togglable: true, onClick: this.onLogicOr, selected: filter.logic === 'or', type: \"button\" }, locService.toLanguageString(filterOrLogic, messages[filterOrLogic])))),\n React.createElement(ToolbarItem, null,\n React.createElement(Button, { title: locService.toLanguageString(filterAddExpression, messages[filterAddExpression]), icon: \"filter-add-expression\", type: \"button\", onClick: this.onAddExpression })),\n React.createElement(ToolbarItem, null,\n React.createElement(Button, { title: locService.toLanguageString(filterAddGroup, messages[filterAddGroup]), icon: \"filter-add-group\", type: \"button\", onClick: this.onAddGroup })),\n React.createElement(ToolbarItem, null,\n React.createElement(Button, { title: locService.toLanguageString(filterClose, messages[filterClose]), icon: \"close\", look: \"flat\", type: \"button\", onClick: this.onGroupRemove })))),\n filter.filters.length > 0 && (React.createElement(\"ul\", { className: \"k-filter-lines\" }, filter.filters.map(function (f, idx) {\n return (React.createElement(\"li\", { key: idx, className: \"k-filter-item\" }, isCompositeFilterDescriptor(f) ?\n React.createElement(Group, { filter: f, fields: fields, onChange: _this.onChange, onRemove: _this.onRemove, defaultGroupFilter: _this.props.defaultGroupFilter })\n :\n React.createElement(Expression, { filter: f, fields: fields, onChange: _this.onChange, onRemove: _this.onRemove })));\n })))));\n };\n Group.propTypes = {\n filter: PropTypes.object.isRequired,\n fields: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n onRemove: PropTypes.func.isRequired,\n defaultGroupFilter: PropTypes.object.isRequired\n };\n return Group;\n}(React.Component));\nexport { Group };\nregisterForLocalization(Group);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Group } from './Group';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the [KendoReact Filter component]({% slug overview_filter %}).\n */\nvar Filter = /** @class */ (function (_super) {\n __extends(Filter, _super);\n function Filter(props) {\n var _this = _super.call(this, props) || this;\n _this.onFilterChange = function (event) {\n var changeEvent = {\n filter: event.nextFilter,\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onChange.call(undefined, changeEvent);\n };\n _this.onGroupRemove = function (event) {\n var changeEvent = {\n filter: __assign({}, _this.props.value, { filters: [] }),\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n target: _this\n };\n _this.props.onChange.call(undefined, changeEvent);\n };\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n Filter.prototype.render = function () {\n return (React.createElement(\"div\", { className: 'k-widget k-filter' + (this.props.className ? ' ' + this.props.className : ''), style: this.props.style },\n React.createElement(\"ul\", { className: \"k-filter-container\" },\n React.createElement(\"li\", { className: \"k-filter-group-main\" },\n React.createElement(Group, { filter: this.props.value, fields: this.props.fields, onChange: this.onFilterChange, onRemove: this.onGroupRemove, defaultGroupFilter: this.props.defaultGroupFilter || { logic: 'and', filters: [] } })))));\n };\n /**\n * @hidden\n */\n Filter.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n fields: function (props, propName) {\n var prop = props[propName];\n if (prop === undefined) {\n return new Error(\"Property '\" + propName + \"' is missing.\");\n }\n else if (!Array.isArray(prop)) {\n return new Error(\"Property '\" + propName + \"' needs to be Array.\");\n }\n else if (Object.keys(prop.reduce(function (acc, cur) {\n var _a;\n return (__assign({}, acc, (_a = {}, _a[cur.name] = 1, _a)));\n }, {})).length !== prop.length) {\n return new Error(\"Property '\" + propName + \"' needs to contain objects with unique 'name' field.\");\n }\n return null;\n },\n value: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired\n };\n return Filter;\n}(React.Component));\nexport { Filter };\n","import { columnMenuFilterEqOperator, columnMenuFilterNotEqOperator, columnMenuFilterIsNullOperator, columnMenuFilterIsNotNullOperator, columnMenuFilterIsEmptyOperator, columnMenuFilterIsNotEmptyOperator, columnMenuFilterStartsWithOperator, columnMenuFilterContainsOperator, columnMenuFilterNotContainsOperator, columnMenuFilterEndsWithOperator, columnMenuFilterGteOperator, columnMenuFilterGtOperator, columnMenuFilterLteOperator, columnMenuFilterLtOperator, columnMenuFilterAfterOrEqualOperator, columnMenuFilterAfterOperator, columnMenuFilterBeforeOperator, columnMenuFilterBeforeOrEqualOperator, columnMenuFilterIsTrue } from '../messages';\nvar textOperators = [\n { text: columnMenuFilterContainsOperator, operator: 'contains' },\n { text: columnMenuFilterNotContainsOperator, operator: 'doesnotcontain' },\n { text: columnMenuFilterEqOperator, operator: 'eq' },\n { text: columnMenuFilterNotEqOperator, operator: 'neq' },\n { text: columnMenuFilterStartsWithOperator, operator: 'startswith' },\n { text: columnMenuFilterEndsWithOperator, operator: 'endswith' },\n { text: columnMenuFilterIsNullOperator, operator: 'isnull' },\n { text: columnMenuFilterIsNotNullOperator, operator: 'isnotnull' },\n { text: columnMenuFilterIsEmptyOperator, operator: 'isempty' },\n { text: columnMenuFilterIsNotEmptyOperator, operator: 'isnotempty' }\n];\nvar numericOperators = [\n { text: columnMenuFilterEqOperator, operator: 'eq' },\n { text: columnMenuFilterNotEqOperator, operator: 'neq' },\n { text: columnMenuFilterGteOperator, operator: 'gte' },\n { text: columnMenuFilterGtOperator, operator: 'gt' },\n { text: columnMenuFilterLteOperator, operator: 'lte' },\n { text: columnMenuFilterLtOperator, operator: 'lt' },\n { text: columnMenuFilterIsNullOperator, operator: 'isnull' },\n { text: columnMenuFilterIsNotNullOperator, operator: 'isnotnull' }\n];\nvar dateOperators = [\n { text: columnMenuFilterEqOperator, operator: 'eq' },\n { text: columnMenuFilterNotEqOperator, operator: 'neq' },\n { text: columnMenuFilterAfterOrEqualOperator, operator: 'gte' },\n { text: columnMenuFilterAfterOperator, operator: 'gt' },\n { text: columnMenuFilterBeforeOperator, operator: 'lt' },\n { text: columnMenuFilterBeforeOrEqualOperator, operator: 'lte' },\n { text: columnMenuFilterIsNullOperator, operator: 'isnull' },\n { text: columnMenuFilterIsNotNullOperator, operator: 'isnotnull' }\n];\nvar booleanOperators = [\n { text: columnMenuFilterIsTrue, operator: '' }\n];\n/**\n * Represents the operators for the ColumnMenuTextFilter, ColumnMenuNumericFilter,\n * ColumnMenuDateFilter and ColumnMenuBooleanFilter components.\n *\n * The text field of each operator object will be resolved according to the\n * [localization messages]({% slug globalization_datatools %}#toc-messages).\n */\nvar ColumnMenuOperators = /** @class */ (function () {\n function ColumnMenuOperators() {\n }\n Object.defineProperty(ColumnMenuOperators, \"text\", {\n /**\n * An array containing the operators for the ColumnMenuTextFilter component.\n *\n * The operators are:\n *\n * - { text: 'columnMenu.filterContainsOperator', operator: 'contains' }\n * - { text: 'columnMenu.filterNotContainsOperator', operator: 'doesnotcontain' }\n * - { text: 'columnMenu.filterEqOperator', operator: 'eq' }\n * - { text: 'columnMenu.filterNotEqOperator', operator: 'neq' }\n * - { text: 'columnMenu.filterStartsWithOperator', operator: 'startswith' }\n * - { text: 'columnMenu.filterEndsWithOperator', operator: 'endswith' }\n * - { text: 'columnMenu.filterIsNullOperator', operator: 'isnull' }\n * - { text: 'columnMenu.filterIsNotNullOperator', operator: 'isnotnull' }\n * - { text: 'columnMenu.filterIsEmptyOperator', operator: 'isempty' }\n * - { text: 'columnMenu.filterIsNotEmptyOperator', operator: 'isnotempty' }\n */\n get: function () {\n return textOperators.slice();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColumnMenuOperators, \"numeric\", {\n /**\n * An array containing the operators for the ColumnMenuNumericFilter component.\n *\n * The operators are:\n *\n * - { text: 'columnMenu.filterEqOperator', operator: 'eq' }\n * - { text: 'columnMenu.filterNotEqOperator', operator: 'neq' }\n * - { text: 'columnMenu.filterGteOperator', operator: 'gte' }\n * - { text: 'columnMenu.filterGtOperator', operator: 'gt' }\n * - { text: 'columnMenu.filterLteOperator', operator: 'lte' }\n * - { text: 'columnMenu.filterLtOperator', operator: 'lt' }\n * - { text: 'columnMenu.filterIsNullOperator', operator: 'isnull' }\n * - { text: 'columnMenu.filterIsNotNullOperator', operator: 'isnotnull' }\n */\n get: function () {\n return numericOperators.slice();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColumnMenuOperators, \"date\", {\n /**\n * An array containing the operators for the ColumnMenuDateFilter component.\n *\n * The operators are:\n *\n * - { text: 'columnMenu.filterEqOperator', operator: 'eq' }\n * - { text: 'columnMenu.filterNotEqOperator', operator: 'neq' }\n * - { text: 'columnMenu.filterAfterOrEqualOperator', operator: 'gte' }\n * - { text: 'columnMenu.filterAfterOperator', operator: 'gt' }\n * - { text: 'columnMenu.filterBeforeOperator', operator: 'lt' }\n * - { text: 'columnMenu.filterBeforeOrEqualOperator', operator: 'lte' }\n * - { text: 'columnMenu.filterIsNullOperator', operator: 'isnull' }\n * - { text: 'columnMenu.filterIsNotNullOperator', operator: 'isnotnull' }\n */\n get: function () {\n return dateOperators.slice();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColumnMenuOperators, \"boolean\", {\n /**\n * An array containing the operators for the ColumnMenuBooleanFilter component.\n *\n * The operators are:\n *\n * - { text: 'columnMenu.filterIsTrue', operator: '' }\n */\n get: function () {\n return booleanOperators.slice();\n },\n enumerable: true,\n configurable: true\n });\n return ColumnMenuOperators;\n}());\nexport { ColumnMenuOperators };\n","import { extendDataItem, mapTree } from '@progress/kendo-react-common';\nvar GROUP_ID_FIELD = 'groupId';\nvar GROUP_SUBITEMS_COLLECTION = 'items';\n/**\n * @hidden\n */\nvar setGroupId = function (group, depth, parentValue) {\n if (group.items) {\n group[GROUP_ID_FIELD] = \"\" + parentValue + (parentValue && '_') + group.value + group.field;\n if (depth > 1) {\n group.items.forEach(function (item) { return setGroupId(item, depth - 1, group[GROUP_ID_FIELD]); });\n }\n }\n};\n/**\n * Add unique ids to the group items inside data.\n *\n * @param {{data: any[], group: GroupDescriptor[]}} options - The options to be processed.\n */\nexport var setGroupIds = function (options) {\n var group = options.group;\n if (group && group.length && options.data) {\n return options.data.forEach(function (item) { return setGroupId(item, group.length, ''); });\n }\n};\n/**\n * Get all group ids from the data.\n *\n * @param {{data: any[]}} options - The options to be processed.\n * @returns {string[]} - Collection of all group ids from the data.\n */\nexport var getGroupIds = function (options) {\n var groupIds = [];\n mapTree(options.data, GROUP_SUBITEMS_COLLECTION, function (item) {\n if (item[GROUP_ID_FIELD]) {\n groupIds.push(item[GROUP_ID_FIELD]);\n }\n });\n return groupIds;\n};\n/**\n * Apply the `expanded` prop to the group items in data based on the provided collection of group ids.\n *\n * @param {{data: any[], collapsedIds: string[]}} options - The options to be processed.\n * @returns {string[]} - Collection of all group ids from the data.\n */\nexport var setExpandedState = function (options) {\n // TODO: no need to traverse whole tree, only group levels\n return mapTree(options.data, GROUP_SUBITEMS_COLLECTION, function (item) {\n return extendDataItem(item, GROUP_SUBITEMS_COLLECTION, {\n expanded: !options.collapsedIds.some(function (groupId) { return groupId === item[GROUP_ID_FIELD]; })\n });\n });\n};\n","import { guid, Keys } from '@progress/kendo-react-common';\nimport { findId, findNextIdByCellIndex, findNextIdByRowIndex, getBodyElement, getHeaderElement, getNavigatableId, tableKeyboardNavigationTools as navigationTools } from './utils';\n/**\n * @hidden\n */\nvar onConstructor = function (options) {\n var navigatable = options.navigatable, contextStateRef = options.contextStateRef, navigationStateRef = options.navigationStateRef, idPrefix = options.idPrefix;\n // v.2: check if nested navigation\n if (navigatable) {\n contextStateRef.current = {\n activeId: '',\n level: 0\n };\n navigationStateRef.current = {\n activeElementIsFocused: false,\n prevNavigationIndexes: undefined,\n idPrefix: idPrefix || guid(),\n navigationMatrix: [],\n lastHeaderIndex: -1\n };\n }\n};\n/**\n * @hidden\n */\nvar onComponentDidMount = function (options) {\n var scope = options.scope, contextStateRef = options.contextStateRef, navigationStateRef = options.navigationStateRef;\n if (contextStateRef.current && navigationStateRef.current && scope) {\n generateMatrix(options);\n var firstId = navigationStateRef.current.navigationMatrix[0][0];\n var firstIdElement = navigationTools.getActiveElement(scope, firstId);\n if (firstId && firstIdElement) {\n contextStateRef.current.activeId = firstId;\n firstIdElement.setAttribute('tabIndex', '0');\n }\n }\n};\n/**\n * @hidden\n */\nvar onGetSnapshotBeforeUpdate = function (options) {\n var contextStateRef = options.contextStateRef, navigationStateRef = options.navigationStateRef, currentDocument = options.document;\n if (contextStateRef.current && navigationStateRef.current && currentDocument) {\n var activeElement = currentDocument.activeElement;\n var activeId = navigationTools.getNavigatableId(activeElement);\n if (activeId && activeId === contextStateRef.current.activeId) {\n navigationStateRef.current.activeElementIsFocused = true;\n }\n }\n};\n/**\n * @hidden\n */\nvar onComponentDidUpdate = function (options) {\n var scope = options.scope, contextStateRef = options.contextStateRef, navigationStateRef = options.navigationStateRef;\n generateMatrix(options);\n // check if nested navigation\n if (contextStateRef.current && navigationStateRef.current && scope) {\n var activeElement = navigationTools.getActiveElement(scope, contextStateRef.current.activeId);\n if (!activeElement) {\n var firstId = navigationStateRef.current.navigationMatrix[0][0];\n var firstIdElement = navigationTools.getActiveElement(scope, firstId);\n if (firstId && firstIdElement) {\n contextStateRef.current.activeId = firstId;\n firstIdElement.setAttribute('tabIndex', '0');\n if (navigationStateRef.current.activeElementIsFocused) {\n firstIdElement.focus();\n }\n }\n }\n navigationStateRef.current.activeElementIsFocused = false;\n }\n};\n/**\n * @hidden\n */\nvar onFocus = function (event, options) {\n var contextStateRef = options.contextStateRef;\n if (event.isDefaultPrevented()) {\n return;\n }\n if (!contextStateRef.current) {\n return;\n }\n var focusedElement = event.target;\n var activeId = navigationTools.getNavigatableId(focusedElement);\n if (activeId && activeId !== contextStateRef.current.activeId) {\n var scope = navigationTools.getClosestScope(focusedElement);\n if (!scope) {\n return;\n }\n var prevElement = navigationTools.getActiveElement(scope, contextStateRef.current.activeId);\n if (prevElement) {\n prevElement.setAttribute('tabIndex', '-1');\n }\n focusedElement.setAttribute('tabIndex', '0');\n contextStateRef.current.activeId = activeId;\n }\n};\n/**\n * @hidden\n */\nvar onKeyDown = function (event, options) {\n var contextStateRef = options.contextStateRef, navigationStateRef = options.navigationStateRef, onNavigationAction = options.onNavigationAction;\n if (event.isDefaultPrevented()) {\n return;\n }\n if (!contextStateRef.current || !navigationStateRef.current) {\n return;\n }\n if (event.keyCode === Keys.esc) {\n // activate navigation\n var elementForFocus = navigationTools.getClosestNavigatableElement(event.target);\n navigationTools.focusElement({ elementForFocus: elementForFocus, event: event, contextStateRef: contextStateRef });\n return;\n }\n var element = event.target;\n var elementId = navigationTools.getNavigatableId(element);\n var dataLevel = navigationTools.getNavigatableLevel(element);\n var scope = navigationTools.getClosestScope(element);\n var matrix = navigationStateRef.current.navigationMatrix;\n if (dataLevel !== undefined && scope) {\n if (event.keyCode === Keys.enter) {\n // activate nested navigation or focus focusable element\n var navigatableElement = navigationTools.getNavigatableElement(element, { level: dataLevel + 1 });\n if (navigatableElement) {\n navigationTools.focusElement({\n elementForFocus: navigatableElement,\n event: event,\n contextStateRef: contextStateRef,\n prevElement: element\n });\n return;\n }\n else {\n var elementForFocus = navigationTools.getFocusableElements(element)[0];\n navigationTools.focusElement({ elementForFocus: elementForFocus, event: event, contextStateRef: contextStateRef, prevElement: element });\n return;\n }\n }\n if (event.keyCode === Keys.up ||\n event.keyCode === Keys.down ||\n event.keyCode === Keys.left ||\n event.keyCode === Keys.right) {\n var isReverse = event.keyCode === Keys.up || event.keyCode === Keys.left;\n var isVertical = event.keyCode === Keys.up || event.keyCode === Keys.down;\n var currentIdIndexes = void 0;\n if (navigationStateRef.current && navigationStateRef.current.prevNavigationIndexes) {\n var _a = navigationStateRef.current.prevNavigationIndexes, rowIndex = _a[0], cellIndex = _a[1];\n if (matrix[rowIndex][cellIndex] === elementId) {\n currentIdIndexes = navigationStateRef.current.prevNavigationIndexes;\n }\n else {\n currentIdIndexes = findId(matrix, elementId);\n }\n }\n else {\n currentIdIndexes = findId(matrix, elementId);\n }\n if (currentIdIndexes) {\n var rowIndex = currentIdIndexes[0], cellIndex = currentIdIndexes[1];\n var _b = isVertical ?\n findNextIdByRowIndex(rowIndex, cellIndex, elementId, matrix, isReverse) :\n findNextIdByCellIndex(rowIndex, cellIndex, elementId, matrix, isReverse), idForFocus = _b[0], currentIndexes = _b[1];\n if (idForFocus) {\n var elementForFocus = navigationTools.getActiveElement(scope, idForFocus);\n // emit event\n navigationTools.focusElement({ elementForFocus: elementForFocus, event: event, contextStateRef: contextStateRef, prevElement: element });\n navigationStateRef.current.prevNavigationIndexes = currentIndexes;\n if (onNavigationAction) {\n onNavigationAction({ focusElement: elementForFocus, event: event });\n }\n }\n }\n }\n }\n};\n/**\n * @hidden\n */\nvar generateMatrix = function (options) {\n var navigationStateRef = options.navigationStateRef, scope = options.scope;\n if (!navigationStateRef.current || !scope) {\n return;\n }\n var matrix = [];\n var thead = getHeaderElement(scope);\n var tbody = getBodyElement(scope);\n if (!thead || !tbody) {\n return;\n }\n var headerRows = Array.from(thead.children);\n var bodyRows = Array.from(tbody.children);\n headerRows.concat(bodyRows).forEach(function (row, rowIndex) {\n Array.from(row.children).forEach(function (cell) {\n var cellId = getNavigatableId(cell);\n if (!cellId) {\n return;\n } // cell is not navigatable\n var rowSpan = cell.rowSpan || 1;\n var cellSpan = cell.colSpan || 1;\n var cellIndex;\n for (var depth = rowIndex, maxDepth = rowIndex + rowSpan; depth < maxDepth; depth++) {\n if (!matrix[depth]) {\n matrix[depth] = [];\n }\n if (cellIndex === undefined) {\n var freeSlotIndex = matrix[depth].findIndex(function (mi) { return !mi; });\n cellIndex = freeSlotIndex > -1 ? freeSlotIndex : matrix[depth].length;\n }\n matrix[depth][cellIndex] = cellId || '';\n }\n for (var depth = cellIndex + 1, maxDepth = cellIndex + cellSpan; depth < maxDepth; depth++) {\n matrix[rowIndex][depth] = cellId || '';\n }\n });\n });\n navigationStateRef.current.navigationMatrix = matrix.filter(function (row) { return !!row; });\n navigationStateRef.current.lastHeaderIndex = headerRows.length - 1;\n};\n/**\n * @hidden\n */\nexport var tableKeyboardNavigation = {\n onConstructor: onConstructor,\n onComponentDidMount: onComponentDidMount,\n onGetSnapshotBeforeUpdate: onGetSnapshotBeforeUpdate,\n onComponentDidUpdate: onComponentDidUpdate,\n onFocus: onFocus,\n onKeyDown: onKeyDown,\n generateMatrix: generateMatrix\n};\n","/** @hidden */\nexport var TABLE_ROW_INDEX_ATTRIBUTE = 'data-grid-row-index';\n/** @hidden */\nexport var TABLE_COL_INDEX_ATTRIBUTE = 'data-grid-col-index';\n/** @hidden */\nexport var TABLE_PREVENT_SELECTION_ELEMENT = 'data-prevent-selection';\n","var __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};\nimport { extendDataItem, getter, Keys, mapTree, hasRelativeStackingContext } from '@progress/kendo-react-common';\nimport { TABLE_COL_INDEX_ATTRIBUTE, TABLE_ROW_INDEX_ATTRIBUTE } from './constants';\nvar GROUP_SUBITEMS_COLLECTION = 'items';\nvar LAST_SELECTION_STATE = {};\nvar getCellSelection = function (currentSelection, selectedColumn) {\n if (!currentSelection || (Array.isArray(currentSelection) && currentSelection.length === 0)) {\n return [selectedColumn];\n }\n else {\n var foundIndex = currentSelection.findIndex(function (columnIndex) { return columnIndex === selectedColumn; });\n if (foundIndex > -1) {\n return currentSelection.filter(function (columnIndex) { return columnIndex === selectedColumn; });\n }\n else {\n return currentSelection.concat([selectedColumn]);\n }\n }\n};\n/** @hidden */\nexport var closestTagName = function (target, tagName) {\n var currentTarget = target;\n while (currentTarget) {\n if (currentTarget.tagName === tagName) {\n return currentTarget;\n }\n else if (currentTarget.tagName === 'TABLE') {\n return null;\n }\n currentTarget = currentTarget.parentElement;\n }\n return null;\n};\n/** @hidden */\nexport var getRowIndex = function (element) {\n if (!element) {\n return;\n }\n var rowIndex = element.getAttribute(TABLE_ROW_INDEX_ATTRIBUTE);\n return rowIndex ? parseInt(rowIndex, 10) : undefined;\n};\n/** @hidden */\nexport var getColumnIndex = function (element) {\n if (!element) {\n return;\n }\n var colIndex = element.getAttribute(TABLE_COL_INDEX_ATTRIBUTE);\n return colIndex ? parseInt(colIndex, 10) : undefined;\n};\n/**\n * @hidden\n *\n * Apply the selected field to the data items based on the selected state.\n *\n * @param {{data: any, selectedState: {[id: string]: boolean | number[]}, dataItemKey: string; selectedField: string; subItemsField?: string; }} options\n * @returns {any[]}\n */\nexport var setSelectedState = function (options) {\n var subItemsField = options.subItemsField || GROUP_SUBITEMS_COLLECTION;\n var idGetter = getter(options.dataItemKey);\n return mapTree(options.data, subItemsField, function (item) {\n var _a;\n return extendDataItem(item, subItemsField, (_a = {},\n _a[options.selectedField] = options.selectedState[idGetter(item)],\n _a));\n });\n};\n/**\n * Get selected state from the component KeyDown event.\n *\n * @param {{event: TableKeyDownEvent, selectedState: {[id: string]: boolean | number[]}, dataItemKey: string}} options\n * @returns {{[id: string]: boolean | number[]}} - The new selected state.\n */\nexport var getSelectedStateFromKeyDown = function (options) {\n var event = options.event, dataItemKey = options.dataItemKey, selectedState = options.selectedState;\n var syntheticEvent = event.syntheticEvent, nativeEvent = event.nativeEvent, dataItems = event.dataItems, componentId = event.componentId, mode = event.mode, cell = event.cell, selectedField = event.selectedField;\n var target = nativeEvent.target, ctrlKey = nativeEvent.ctrlKey, metaKey = nativeEvent.metaKey, altKey = nativeEvent.altKey, shiftKey = nativeEvent.shiftKey;\n if (syntheticEvent.isDefaultPrevented() || nativeEvent.keyCode !== Keys.enter) {\n return selectedState;\n }\n var tdElement = closestTagName(target, 'TD');\n var trElement = closestTagName(target, 'TR');\n var colIndex = getColumnIndex(tdElement);\n var rowIndex = getRowIndex(trElement);\n var selectionState = {};\n if (tdElement && trElement && rowIndex !== undefined && colIndex !== undefined) {\n selectionState = getSelectedState({\n selectedState: selectedState,\n dataItemKey: dataItemKey,\n event: {\n ctrlKey: ctrlKey, metaKey: metaKey, altKey: altKey, shiftKey: shiftKey,\n dataItems: dataItems, cell: cell, mode: mode, selectedField: selectedField, componentId: componentId,\n startColIndex: colIndex, endColIndex: colIndex, startRowIndex: rowIndex, endRowIndex: rowIndex,\n isDrag: false,\n syntheticEvent: syntheticEvent,\n nativeEvent: nativeEvent,\n target: event.target,\n dataItem: null\n }\n });\n }\n return selectionState;\n};\n/**\n * Get selected state from the component selection event.\n *\n * @param {{event: TableSelectionChangeEvent, selectedState: {[id: string]: boolean | number[]}, dataItemKey: string}} options\n * @returns {{[id: string]: boolean | number[]}} - The new selected state.\n */\nexport var getSelectedState = function (options) {\n var event = options.event, dataItemKey = options.dataItemKey, prevSelectedState = options.selectedState;\n var dataItems = event.dataItems, startRowIndex = event.startRowIndex, endRowIndex = event.endRowIndex, startColIndex = event.startColIndex, endColIndex = event.endColIndex, cell = event.cell, isDrag = event.isDrag, ctrlKey = event.ctrlKey, shiftKey = event.shiftKey, metaKey = event.metaKey, componentId = event.componentId, mode = event.mode, dataItem = event.dataItem;\n var idGetter = getter(dataItemKey);\n var selectionState = {};\n var isInputEvent = dataItem !== null;\n if (mode === 'single') {\n var currentDataItem = dataItems.slice(startRowIndex, startRowIndex + 1)[0];\n var itemId = idGetter(currentDataItem);\n LAST_SELECTION_STATE[componentId] = {\n rowIndex: startRowIndex,\n colIndex: startColIndex\n };\n selectionState[itemId] = cell ? [startColIndex] : true;\n }\n else if (isDrag || (!shiftKey && !ctrlKey && !metaKey && !isInputEvent)) {\n if (!isDrag) {\n LAST_SELECTION_STATE[componentId] = {\n rowIndex: startRowIndex,\n colIndex: startColIndex\n };\n }\n var selectedColumns_1 = [];\n for (var i = startColIndex; i <= endColIndex; i++) {\n selectedColumns_1.push(i);\n }\n var selectedDataItems = dataItems.slice(startRowIndex, endRowIndex + 1);\n selectedDataItems.forEach(function (currentItem) {\n var itemId = idGetter(currentItem);\n selectionState[itemId] = cell ? selectedColumns_1.slice() : true;\n });\n }\n else {\n if (ctrlKey || metaKey || isInputEvent) {\n LAST_SELECTION_STATE[componentId] = {\n rowIndex: startRowIndex,\n colIndex: startColIndex\n };\n var selectedDataItems = dataItems.slice(startRowIndex, endRowIndex + 1);\n var currentDataItem = selectedDataItems[0];\n var itemId = idGetter(currentDataItem);\n selectionState = __assign({}, prevSelectedState);\n selectionState[itemId] = cell && !isInputEvent ? getCellSelection(selectionState[itemId], startColIndex) : !selectionState[itemId];\n }\n else if (shiftKey) {\n var lastRowIndex = (LAST_SELECTION_STATE[componentId] && LAST_SELECTION_STATE[componentId].rowIndex) || 0;\n var lastColIndex = (LAST_SELECTION_STATE[componentId] && LAST_SELECTION_STATE[componentId].colIndex) || 0;\n var currentStartRowIndex = Math.min(lastRowIndex, startRowIndex, endRowIndex);\n var currentEndRowIndex = Math.max(lastRowIndex, startRowIndex, endRowIndex);\n var currentStarColIndex = Math.min(lastColIndex, startColIndex, endColIndex);\n var currentEndColIndex = Math.max(lastColIndex, startColIndex, endColIndex);\n var selectedColumns_2 = [];\n for (var i = currentStarColIndex; i <= currentEndColIndex; i++) {\n selectedColumns_2.push(i);\n }\n var selectedDataItems = dataItems.slice(currentStartRowIndex, currentEndRowIndex + 1);\n selectedDataItems.forEach(function (currentItem) {\n var itemId = idGetter(currentItem);\n selectionState[itemId] = cell ? selectedColumns_2.slice() : true;\n });\n }\n }\n return selectionState;\n};\n/** @hidden */\nvar HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext();\n/** @hidden */\nexport var relativeContextElement = function (element) {\n if (!element || !HAS_RELATIVE_STACKING_CONTEXT) {\n return null;\n }\n var node = element.parentElement;\n while (node) {\n if (window.getComputedStyle(node).transform !== 'none') {\n return node;\n }\n node = node.parentElement;\n }\n};\n/** @hidden */\nexport var getOffset = function (offsetParent) {\n if (offsetParent && offsetParent.ownerDocument) {\n if (offsetParent !== offsetParent.ownerDocument.body) {\n var rect = offsetParent.getBoundingClientRect();\n return {\n left: rect.left - offsetParent.scrollLeft,\n top: rect.top - offsetParent.scrollTop\n };\n }\n }\n return { left: 0, top: 0 };\n};\n/** @hidden */\nexport var getSelectionOptions = function (selectable) {\n var enabled = selectable ?\n (typeof selectable.enabled === 'boolean' ? selectable.enabled : true) :\n false;\n var drag = selectable ? Boolean(selectable.drag) : false;\n var mode = selectable && selectable.mode ? selectable.mode : 'multiple';\n var cell = Boolean(selectable && selectable.cell);\n return { enabled: enabled, drag: drag, mode: mode, cell: cell };\n};\n","var __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};\nimport * as React from 'react';\nimport { Draggable } from '@progress/kendo-react-common';\nimport { closestTagName, getColumnIndex, getOffset, getRowIndex, getSelectionOptions, relativeContextElement } from './utils';\nimport { TABLE_PREVENT_SELECTION_ELEMENT } from './constants';\n/** @hidden */\nexport var TableSelection = function (props) {\n var onRelease = props.onRelease, childRef = props.childRef;\n var _a = getSelectionOptions(props.selectable), selectionEnabled = _a.enabled, selectionDrag = _a.drag, selectionMode = _a.mode, selectionCell = _a.cell;\n var draggableRef = React.useRef(null);\n var overlayElementRef = React.useRef(null);\n var dragStartRef = React.useRef({ clientX: 0, clientY: 0 });\n var _b = React.useState(null), overlaySettings = _b[0], setOverlaySettings = _b[1];\n var offsetParentRef = React.useRef();\n var isDraggedRef = React.useRef(false);\n var isPreventedRef = React.useRef(false);\n var onPressHandler = React.useCallback(function (eventData) {\n var event = eventData.event;\n isPreventedRef.current = event.originalEvent.target.hasAttribute(TABLE_PREVENT_SELECTION_ELEMENT);\n if (isPreventedRef.current || !draggableRef.current) {\n return;\n }\n offsetParentRef.current = relativeContextElement(draggableRef.current.element);\n dragStartRef.current = {\n clientY: event.clientY,\n clientX: event.clientX\n };\n }, []);\n var onDragHandler = React.useCallback(function (eventData) {\n var event = eventData.event;\n var _a = dragStartRef.current, clientX = _a.clientX, clientY = _a.clientY;\n if (isPreventedRef.current) {\n return;\n }\n if (!selectionDrag || selectionMode === 'single') {\n return;\n }\n if (Math.abs(clientY - event.clientY) > 5 || Math.abs(clientX - event.clientX) > 5) {\n isDraggedRef.current = true;\n }\n if (isDraggedRef.current) {\n var offset = getOffset(offsetParentRef.current);\n setOverlaySettings({\n top: Math.min(clientY, event.clientY) - offset.top,\n left: Math.min(clientX, event.clientX) - offset.left,\n width: Math.abs(event.clientX - clientX),\n height: Math.abs(event.clientY - clientY)\n });\n }\n }, [setOverlaySettings, selectionDrag, selectionMode]);\n var onReleaseHandler = React.useCallback(function (eventData) {\n var event = eventData.event;\n var _a = dragStartRef.current, clientX = _a.clientX, clientY = _a.clientY;\n if (isPreventedRef.current || !draggableRef.current) {\n return;\n }\n var currentDocument = draggableRef.current.element && draggableRef.current.element.ownerDocument;\n if (!currentDocument) {\n return;\n }\n if (!isDraggedRef.current) {\n var startElement = currentDocument.elementFromPoint(clientX, clientY);\n if (!startElement) {\n return;\n }\n var tdElement = closestTagName(startElement, 'TD');\n var trElement = closestTagName(startElement, 'TR');\n var colIndex = getColumnIndex(tdElement);\n var rowIndex = getRowIndex(trElement);\n if (tdElement && trElement && rowIndex !== undefined && colIndex !== undefined) {\n onRelease({\n nativeEvent: event.originalEvent,\n startRowIndex: rowIndex,\n startColIndex: colIndex,\n endRowIndex: rowIndex,\n endColIndex: colIndex,\n altKey: event.altKey,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.originalEvent.metaKey,\n mode: selectionMode,\n cell: selectionCell,\n isDrag: false\n });\n }\n }\n else {\n var top_1 = Math.min(clientY, event.clientY);\n var left = Math.min(clientX, event.clientX);\n var bottom = Math.max(clientY, event.clientY);\n var right = Math.max(clientX, event.clientX);\n var overlayElement = overlayElementRef.current;\n if (!overlayElement) {\n return;\n }\n overlayElement.style.visibility = 'hidden';\n var startElement = currentDocument.elementFromPoint(left, top_1);\n var endElement = currentDocument.elementFromPoint(right, bottom);\n overlayElement.style.visibility = '';\n if (!startElement || !endElement) {\n return;\n }\n var startTdElement = closestTagName(startElement, 'TD');\n var startTrElement = closestTagName(startTdElement, 'TR');\n var endTdElement = closestTagName(endElement, 'TD');\n var endTrElement = closestTagName(endTdElement, 'TR');\n var startColIndex = getColumnIndex(startTdElement);\n var startRowIndex = getRowIndex(startTrElement);\n var endColIndex = getColumnIndex(endTdElement);\n var endRowIndex = getRowIndex(endTrElement);\n if (startColIndex !== undefined &&\n startRowIndex !== undefined &&\n endColIndex !== undefined &&\n endRowIndex !== undefined) {\n onRelease({\n nativeEvent: event.originalEvent,\n startRowIndex: startRowIndex,\n startColIndex: startColIndex,\n endRowIndex: endRowIndex,\n endColIndex: endColIndex,\n altKey: event.altKey,\n shiftKey: event.shiftKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.originalEvent.metaKey,\n mode: selectionMode,\n cell: selectionCell,\n isDrag: true\n });\n }\n }\n setOverlaySettings(null);\n isDraggedRef.current = false;\n dragStartRef.current = { clientX: 0, clientY: 0 };\n }, [setOverlaySettings, selectionMode, selectionCell, onRelease]);\n if (!selectionEnabled) {\n return (React.cloneElement(React.Children.only(props.children), { ref: childRef }));\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(Draggable, { onPress: onPressHandler, onDrag: onDragHandler, onRelease: onReleaseHandler, ref: draggableRef, childRef: childRef }, props.children),\n overlaySettings &&\n React.createElement(\"div\", { ref: overlayElementRef, style: __assign({}, overlaySettings, { position: 'fixed' }), className: 'k-marquee k-marquee-color' })));\n};\n","import * as PropTypes from 'prop-types';\n/**\n * @hidden\n */\nexport var GridColumn = function (_) { return null; };\n/**\n * @hidden\n */\nGridColumn.displayName = 'KendoReactGridColumn';\n/**\n * @hidden\n */\nGridColumn.defaultProps = {\n filterable: true,\n editable: true,\n sortable: true,\n resizable: true,\n reorderable: true,\n groupable: true\n};\n/**\n * @hidden\n */\nGridColumn.propTypes = {\n field: PropTypes.string,\n title: PropTypes.string,\n editable: PropTypes.bool,\n sortable: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n allowUnsort: PropTypes.bool\n })\n ]),\n cell: PropTypes.any,\n filterCell: PropTypes.any,\n filterTitle: PropTypes.string,\n filterable: PropTypes.bool,\n filter: PropTypes.oneOf(['text', 'numeric', 'boolean', 'date']),\n editor: PropTypes.oneOf(['text', 'numeric', 'boolean', 'date']),\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minResizableWidth: PropTypes.number,\n headerCell: PropTypes.any,\n footerCell: PropTypes.any,\n headerSelectionValue: PropTypes.bool,\n format: PropTypes.string,\n headerClassName: PropTypes.string,\n className: PropTypes.string,\n reorderable: PropTypes.bool,\n resizable: PropTypes.bool,\n orderIndex: PropTypes.number,\n groupable: PropTypes.bool,\n columnMenu: PropTypes.any,\n locked: PropTypes.bool\n};\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\n/**\n * @hidden\n */\nexport function getNestedValue(fieldName, dataItem) {\n var path = (fieldName || '').split('.');\n var data = dataItem;\n path.forEach(function (p) {\n data = data ? data[p] : undefined;\n });\n return data;\n}\n/**\n * @hidden\n */\nexport function flatData(output, input, footer, dataIndex, groupDefined, field, level) {\n if (level === void 0) { level = 0; }\n var maxLevel = level;\n for (var i = 0; i < input.length; i++) {\n if (!groupDefined || input[i].value === undefined || input[i].items === undefined) {\n output[output.length] = {\n dataIndex: dataIndex.index,\n dataItem: input[i],\n rowType: 'data',\n level: level,\n expanded: field === undefined || getNestedValue(field, input[i])\n };\n dataIndex.index++;\n continue;\n }\n maxLevel = Math.max(maxLevel, level + 1);\n var expanded = field === undefined ||\n getNestedValue(field, input[i]) === undefined ||\n getNestedValue(field, input[i]);\n // header\n output[output.length] = {\n dataIndex: -1,\n dataItem: input[i],\n level: level,\n rowType: 'groupHeader',\n expanded: expanded\n };\n // children\n if (expanded) {\n maxLevel = Math.max(flatData(output, input[i].items, footer, dataIndex, groupDefined, field, level + 1), maxLevel);\n }\n // footer\n if (footer === 'always' || (expanded && footer === 'visible')) {\n output[output.length] = {\n dataIndex: -1,\n dataItem: input[i],\n rowType: 'groupFooter',\n level: level,\n expanded: expanded\n };\n }\n }\n return maxLevel;\n}\nvar eventKeys = [\n 'sortChange',\n 'filterChange',\n 'groupChange',\n 'pageChange',\n 'expandChange',\n 'selectionChange',\n 'headerSelectionChange',\n 'rowClick',\n 'itemChange',\n 'dataStateChange',\n 'columnResize',\n 'columnReorder'\n];\nvar deprecatedHandlerMessage = function (oldKey, newKey) { return (\"The \" + oldKey + \" event handler property is deprecated, \" +\n (\"use https://www.telerik.com/kendo-react-ui/components/grid/api/GridProps/#toc-\" + newKey + \" instead\")); };\n/**\n * @hidden\n */\nexport function checkPropCompatibility(props) {\n for (var index = 0; index < eventKeys.length; index++) {\n var eventKey = eventKeys[index];\n if (props[eventKey] !== undefined) {\n var newKey = 'on' + eventKey.charAt(0).toUpperCase() + eventKey.slice(1);\n console.warn(deprecatedHandlerMessage(eventKey, newKey));\n }\n }\n}\nimport { GridColumn } from '../GridColumn';\nimport { tableKeyboardNavigationTools as navigationTools } from '@progress/kendo-react-data-tools';\n/**\n * @hidden\n */\nexport function readColumns(elements, oldColumns, idInfo, depth) {\n if (depth === void 0) { depth = 0; }\n var columns = [];\n if (!elements) {\n return [];\n }\n if (elements && elements.length === undefined) {\n elements = [elements];\n }\n elements.forEach(function (columnProps, index) {\n columnProps = columnProps.props ? columnProps.props : columnProps;\n var oldColumn = oldColumns[index] || null;\n var children = readColumns(columnProps.children, oldColumn && oldColumn.children || [], idInfo, depth + 1);\n columns.push(Object.assign({ depth: depth }, GridColumn.defaultProps, (children.length) ? { cell: function () { return null; }, filterCell: function () { return null; } } : {}, oldColumn ? { width: oldColumn.width, orderIndex: oldColumn.orderIndex } : {}, columnProps, {\n id: columnProps.id ? columnProps.id : navigationTools.generateNavigatableId(\"\" + idInfo.prevId++, idInfo.idPrefix, 'column'),\n declarationIndex: columns.length,\n children: children,\n rowSpan: 0,\n colSpan: 0,\n isAccessible: true\n }));\n });\n var comparator = function (a, b) {\n return a.orderIndex === b.orderIndex ?\n a.declarationIndex - b.declarationIndex :\n ((a.orderIndex || 0) - (b.orderIndex || 0));\n };\n columns.sort(comparator);\n if (depth === 0) {\n var ret_1 = [];\n var flat_1 = function (cols, pIndex) {\n return cols.forEach(function (c) {\n c.parentIndex = pIndex;\n flat_1(c.children, ret_1.push(c) - 1);\n });\n };\n flat_1(columns, -1);\n return ret_1;\n }\n return columns;\n}\n/**\n * @hidden\n */\nexport function autoGenerateColumns(data, group, expandField, idInfo) {\n var propData = [];\n if (Array.isArray(data)) {\n propData = data;\n }\n else if (data) {\n propData = data.data;\n }\n var columns = [];\n if (propData.length > 0) {\n var itemForColumnsGen = propData[0];\n if (group) {\n for (var i = 0; i < group.length; i++) {\n itemForColumnsGen = itemForColumnsGen.items && itemForColumnsGen.items[0];\n }\n }\n var fields = Object.getOwnPropertyNames(itemForColumnsGen);\n fields.forEach(function (field) {\n if (field !== expandField) {\n columns.push(Object.assign({\n id: navigationTools.generateNavigatableId(\"\" + idInfo.prevId++, idInfo.idPrefix, 'column'),\n declarationIndex: -1,\n parentIndex: -1,\n depth: 0,\n colSpan: 0,\n rowSpan: 0,\n index: 0,\n left: 0,\n right: 0,\n rightBorder: false,\n children: [],\n ariaColumnIndex: 0,\n isAccessible: true\n }, GridColumn.defaultProps, { field: field }));\n }\n });\n }\n return columns;\n}\nvar hasParentFooterCell = function (columns, column) {\n var parent = columns[column.parentIndex];\n while (parent) {\n if (parent.footerCell) {\n return true;\n }\n parent = columns[parent.parentIndex];\n }\n return false;\n};\n/**\n * @hidden\n */\nexport var footerColumns = function (columns) {\n return columns.filter(function (column) {\n if (hasParentFooterCell(columns, column)) {\n return false;\n }\n return Boolean(column.footerCell) || !(column.children && column.children.length > 0);\n });\n};\n/**\n * @hidden\n */\nexport var sanitizeColumns = function (columns) {\n columns.sort(function (a, b) {\n return a.declarationIndex - b.declarationIndex;\n });\n return columns.map(function (column) {\n var declarationIndex = column.declarationIndex, parentIndex = column.parentIndex, depth = column.depth, colSpan = column.colSpan, rowSpan = column.rowSpan, index = column.index, kFirst = column.kFirst, children = column.children, props = __rest(column, [\"declarationIndex\", \"parentIndex\", \"depth\", \"colSpan\", \"rowSpan\", \"index\", \"kFirst\", \"children\"]);\n return children.length ? __assign({ children: sanitizeColumns(children) }, props) : props;\n });\n};\n","var __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};\nimport * as React from 'react';\nimport { getNestedValue } from './../utils';\nimport { guid } from '@progress/kendo-react-common';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\n/**\n * @hidden\n */\nexport var GridSelectionCell = function (props) {\n var handleOnChange = React.useCallback(function (syntheticEvent) {\n if (props.selectionChange) {\n props.selectionChange({ syntheticEvent: syntheticEvent });\n }\n }, [props.selectionChange]);\n var inputId = React.useMemo(function () { return guid(); }, []);\n var selectedValue = getNestedValue(props.field, props.dataItem);\n var navigationAttributes = useTableKeyboardNavigation(props.id);\n var defaultRendering = props.rowType !== 'groupHeader' ? (React.createElement(\"td\", __assign({ colSpan: props.colSpan, style: props.style, className: props.className, \"aria-colindex\": props.ariaColumnIndex, role: 'gridcell' }, navigationAttributes),\n React.createElement(\"input\", { checked: typeof selectedValue === 'boolean' && selectedValue, id: inputId, type: \"checkbox\", className: \"k-checkbox\", onChange: handleOnChange }),\n React.createElement(\"label\", { className: \"k-checkbox-label\", htmlFor: inputId }))) : null;\n return props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering;\n};\n","var __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};\nimport * as React from 'react';\nimport { getNestedValue } from './../utils';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nimport { Keys } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var GridHierarchyCell = function (props) {\n var defaultRendering = null;\n var expanded = getNestedValue(props.field, props.dataItem);\n var navigationAttributes = useTableKeyboardNavigation(props.id);\n var onKeyDownHandler = React.useCallback(function (event) {\n if (event.isDefaultPrevented()) {\n return;\n }\n if (event.keyCode === Keys.enter && props.onChange) {\n event.preventDefault();\n props.onChange({\n dataItem: props.dataItem,\n dataIndex: props.dataIndex,\n syntheticEvent: event,\n field: props.field,\n value: !expanded\n });\n }\n }, [props.dataItem, props.dataIndex, props.field, props.onChange, expanded]);\n if (props.rowType === 'groupFooter') {\n defaultRendering = React.createElement(\"td\", __assign({ className: \"k-hierarchy-cell\" }, navigationAttributes));\n }\n else if (props.rowType !== 'groupHeader') {\n var className = expanded ? 'k-icon k-i-minus' : 'k-icon k-i-plus';\n defaultRendering = (React.createElement(\"td\", __assign({ className: \"k-hierarchy-cell\", onKeyDown: onKeyDownHandler, \"aria-expanded\": expanded ? 'true' : 'false', role: 'gridcell', \"aria-colindex\": props.ariaColumnIndex }, navigationAttributes),\n React.createElement(\"a\", { onClick: function (e) {\n e.preventDefault();\n if (props.onChange) {\n props.onChange({\n dataItem: props.dataItem,\n dataIndex: props.dataIndex,\n syntheticEvent: e,\n field: props.field,\n value: !expanded\n });\n }\n }, className: className, href: \"#\", tabIndex: -1 })));\n }\n return props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering;\n};\n","import { TABLE_COL_INDEX_ATTRIBUTE, TABLE_PREVENT_SELECTION_ELEMENT, TABLE_ROW_INDEX_ATTRIBUTE } from '@progress/kendo-react-data-tools';\n/** The attribute required by the Grid selection on Grid `tr` elements. */\nexport var GRID_ROW_INDEX_ATTRIBUTE = TABLE_ROW_INDEX_ATTRIBUTE;\n/** The attribute required by the Grid selection on Grid `td` elements. */\nexport var GRID_COL_INDEX_ATTRIBUTE = TABLE_COL_INDEX_ATTRIBUTE;\n/** Attribute which disable selection start from this element. */\nexport var GRID_PREVENT_SELECTION_ELEMENT = TABLE_PREVENT_SELECTION_ELEMENT;\n","var __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};\nimport * as React from 'react';\nimport { getNestedValue } from './../utils';\nimport { NumericTextBox } from '@progress/kendo-react-inputs';\nimport { DatePicker } from '@progress/kendo-react-dateinputs';\nimport { guid, classNames } from '@progress/kendo-react-common';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nimport { GRID_COL_INDEX_ATTRIBUTE } from '../constants';\n/**\n * @hidden\n */\nexport var GridEditCell = function (props) {\n var _a, _b, _c, _d, _e;\n var data = getNestedValue(props.field, props.dataItem);\n var defaultRendering = null;\n var editCellClasses = classNames('k-grid-edit-cell', (_a = {},\n _a['k-state-selected'] = props.isSelected,\n _a), props.className);\n var inputId = React.useMemo(function () { return guid(); }, []);\n var navigationAttributes = useTableKeyboardNavigation(props.id);\n var handleOnChange = React.useCallback(function (syntheticEvent) {\n if (props.onChange) {\n var value = syntheticEvent.target.type === 'checkbox' ?\n syntheticEvent.target.checked :\n syntheticEvent.target.value;\n props.onChange({\n dataItem: props.dataItem,\n dataIndex: props.dataIndex,\n field: props.field,\n syntheticEvent: syntheticEvent,\n value: value\n });\n }\n }, [props.onChange, props.dataItem, props.dataIndex, props.field]);\n var inputChange = React.useCallback(function (e) {\n if (props.onChange) {\n props.onChange({\n dataItem: props.dataItem,\n dataIndex: props.dataIndex,\n field: props.field,\n syntheticEvent: e.syntheticEvent,\n value: e.value\n });\n }\n }, [props.onChange, props.dataItem, props.dataIndex, props.field]);\n switch (props.editor) {\n case 'numeric':\n defaultRendering = (React.createElement(\"td\", __assign({ colSpan: props.colSpan, style: props.style, className: editCellClasses, \"aria-colindex\": props.ariaColumnIndex, \"aria-selected\": props.isSelected }, (_b = {}, _b[GRID_COL_INDEX_ATTRIBUTE] = props.columnIndex, _b), { role: 'gridcell' }, navigationAttributes),\n React.createElement(NumericTextBox, { width: \"100%\", value: (data === undefined) ? null : data, onChange: inputChange })));\n break;\n case 'date':\n defaultRendering = (React.createElement(\"td\", __assign({ colSpan: props.colSpan, style: props.style, className: editCellClasses, \"aria-colindex\": props.ariaColumnIndex, \"aria-selected\": props.isSelected }, (_c = {}, _c[GRID_COL_INDEX_ATTRIBUTE] = props.columnIndex, _c), { role: 'gridcell' }, navigationAttributes),\n React.createElement(DatePicker, { width: \"100%\", value: data, onChange: inputChange })));\n break;\n case 'boolean':\n defaultRendering = (React.createElement(\"td\", __assign({ colSpan: props.colSpan, style: props.style, className: editCellClasses, \"aria-colindex\": props.ariaColumnIndex, \"aria-selected\": props.isSelected }, (_d = {}, _d[GRID_COL_INDEX_ATTRIBUTE] = props.columnIndex, _d), { role: 'gridcell' }, navigationAttributes),\n React.createElement(\"input\", { checked: data || false, id: inputId, type: \"checkbox\", className: \"k-checkbox\", onChange: handleOnChange }),\n React.createElement(\"label\", { className: \"k-checkbox-label\", htmlFor: inputId })));\n break;\n default:\n defaultRendering = (React.createElement(\"td\", __assign({ colSpan: props.colSpan, style: props.style, className: editCellClasses, \"aria-colindex\": props.ariaColumnIndex, \"aria-selected\": props.isSelected }, (_e = {}, _e[GRID_COL_INDEX_ATTRIBUTE] = props.columnIndex, _e), { role: 'gridcell' }, navigationAttributes),\n React.createElement(\"input\", { style: { width: '100%' }, className: \"k-textbox\", value: data || '', onChange: handleOnChange })));\n }\n return props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering;\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { classNames, getScrollbarWidth } from '@progress/kendo-react-common';\nimport { isRtl, tableKeyboardNavigationHeaderAttributes } from '@progress/kendo-react-data-tools';\n/**\n * @hidden\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.element = null;\n _this.headerWrap = null;\n _this.table = null;\n _this.syncScroll = false;\n _this.scrollbarWidth = getScrollbarWidth();\n _this.onScroll = function (_event) {\n if (_this.syncScroll) {\n _this.syncScroll = false;\n return;\n }\n if (!_this.headerWrap) {\n return;\n }\n var scrollLeft = _this.headerWrap.scrollLeft;\n var scrollableDataElement = _this.props.scrollableDataElement();\n if (scrollableDataElement && scrollableDataElement.scrollLeft !== scrollLeft) {\n scrollableDataElement.scrollLeft = scrollLeft;\n }\n };\n return _this;\n }\n Header.prototype.componentDidMount = function () {\n var rtl = isRtl(this.element);\n if (this.props.columnResize) {\n this.props.columnResize.setIsRtl(rtl);\n }\n this.forceUpdate();\n };\n /**\n *\n * @param scrollLeft - Scrolls to the left (in pixels).\n */\n Header.prototype.setScrollLeft = function (scrollLeft) {\n if (this.headerWrap && this.headerWrap.scrollLeft !== scrollLeft) {\n this.syncScroll = true;\n this.headerWrap.scrollLeft = scrollLeft;\n }\n };\n /**\n *\n * @param width - Scrolls the width (in pixels).\n */\n Header.prototype.setWidth = function (width) {\n if (this.table) {\n this.table.style.width = width + 'px';\n }\n };\n Header.prototype.render = function () {\n var _this = this;\n if (!this.props.staticHeaders) {\n return (React.createElement(\"thead\", { className: classNames('k-grid-header', { 'k-grid-draggable-header': this.props.draggable }) },\n this.props.headerRow,\n this.props.filterRow));\n }\n return (React.createElement(\"div\", { ref: function (div) { _this.element = div; }, className: classNames('k-grid-header', { 'k-grid-draggable-header': this.props.draggable }), role: \"presentation\" },\n React.createElement(\"div\", { ref: function (div) { _this.headerWrap = div; }, className: \"k-grid-header-wrap\", style: this.scrollbarWidth ? {} : { borderWidth: 0 }, onScroll: this.onScroll, role: \"presentation\" },\n React.createElement(\"table\", { ref: function (table) { _this.table = table; }, role: \"presentation\" },\n React.createElement(\"colgroup\", { ref: function (e) { _this.props.columnResize.colGroupHeader = e; }, role: \"presentation\" }, this.props.cols),\n React.createElement(\"thead\", __assign({ role: \"presentation\" }, tableKeyboardNavigationHeaderAttributes),\n this.props.headerRow,\n this.props.filterRow)))));\n };\n return Header;\n}(React.Component));\nexport { Header };\n","/**\n * @hidden\n */\nexport var normalize = function () {\n var settings = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n settings[_i] = arguments[_i];\n }\n return Object.assign.apply(Object, [{ allowUnsort: true, mode: 'single' }].concat(settings));\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Draggable } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar ColumnResizer = /** @class */ (function (_super) {\n __extends(ColumnResizer, _super);\n function ColumnResizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.onDrag = function (data) {\n _this.isDragged = true;\n var element = _this.draggable && _this.draggable.element;\n if (element) {\n _this.props.resize(data.event, element, false);\n }\n };\n /**\n * @hidden\n */\n _this.onRelease = function (data) {\n if (!_this.isDragged) {\n return;\n }\n var element = _this.draggable && _this.draggable.element;\n if (element) {\n _this.props.resize(data.event, element, true);\n }\n _this.isDragged = false;\n };\n /**\n * @hidden\n */\n _this.onDoubleClick = function (event) {\n if (_this.isDragged) {\n return;\n }\n var element = _this.draggable && _this.draggable.element;\n if (element) {\n _this.props.autofit(event, element);\n }\n };\n return _this;\n }\n ColumnResizer.prototype.render = function () {\n var _this = this;\n return (React.createElement(Draggable, { onDrag: this.onDrag, onRelease: this.onRelease, ref: function (component) { _this.draggable = component; } },\n React.createElement(\"span\", { className: \"k-column-resizer\", style: { touchAction: 'none' }, draggable: false, onDoubleClick: this.onDoubleClick })));\n };\n return ColumnResizer;\n}(React.Component));\nexport { ColumnResizer };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Draggable } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar ColumnDraggable = /** @class */ (function (_super) {\n __extends(ColumnDraggable, _super);\n function ColumnDraggable() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.onPress = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.pressHandler) {\n _this.props.pressHandler(data.event, element);\n }\n };\n /**\n * @hidden\n */\n _this.onDrag = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.dragHandler) {\n _this.props.dragHandler(data.event, element);\n }\n };\n /**\n * @hidden\n */\n _this.onRelease = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.releaseHandler) {\n _this.props.releaseHandler(data.event);\n }\n };\n return _this;\n }\n ColumnDraggable.prototype.render = function () {\n var _this = this;\n return (React.createElement(Draggable, { onPress: this.onPress, onDrag: this.onDrag, onRelease: this.onRelease, ref: function (component) { _this.draggable = component; } },\n React.createElement(\"tr\", { style: { touchAction: 'none' }, role: \"row\", \"aria-rowindex\": this.props.ariaRowIndex }, this.props.children)));\n };\n return ColumnDraggable;\n}(React.PureComponent));\nexport { ColumnDraggable };\n","var clearSlide = function (element) {\n element.style.transitionDuration = '';\n element.classList.remove('k-slide-down-appear', 'k-slide-down-appear-active', 'k-slide-down-exit', 'k-slide-down-exit-active', 'k-slide-up-appear', 'k-slide-up-appear-active', 'k-slide-up-exit', 'k-slide-up-exit-active');\n};\nvar firefox = typeof window !== 'undefined' &&\n /Firefox/.test(window.navigator.userAgent);\n/**\n * @hidden\n */\nexport var slide = function (element, direction, duration, type, callback) {\n if (duration === 0) {\n return callback();\n }\n var slideClass = 'k-slide-' + direction + '-' + type;\n var slideActiveClass = slideClass + '-active';\n var transitionend = function () {\n // if event is attached using react,\n // the animation does not work well in firefox,\n // when the show/hide button is toggled quickly.\n element.removeEventListener('transitionend', transitionend);\n clearSlide(element);\n callback();\n };\n element.addEventListener('transitionend', transitionend);\n var ownerDocument = element.ownerDocument;\n if (!ownerDocument) {\n return;\n }\n var deafultView = ownerDocument.defaultView;\n if (!deafultView) {\n return;\n }\n var animate = function () {\n clearSlide(element);\n element.classList.add(slideClass);\n deafultView.requestAnimationFrame(function () {\n element.style.transitionDuration = duration + 'ms';\n element.classList.add(slideActiveClass);\n });\n };\n if (firefox) {\n deafultView.requestAnimationFrame(animate);\n }\n else {\n animate();\n }\n};\n","/**\n * @hidden\n */\nexport var canUseDOM = Boolean(\n// from fbjs\ntypeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\n","import * as React from 'react';\n/** @hidden */\nexport var ZIndexContext = React.createContext(0);\n/** @hidden */\nexport var useZIndexContext = function () { return React.useContext(ZIndexContext); };\nZIndexContext.displayName = 'KendoReactZIndexContext';\n","/**\n * @hidden\n */\nexport var classNames = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = {};\n var addLeafKeys = function (arg) { return typeof arg === 'object' ? Object\n .keys(arg)\n .forEach(function (key) {\n result[key] = arg[key];\n }) : result[arg] = true; };\n ;\n var addKeys = function (list) { return list\n .filter(function (arg) { return arg !== true && !!arg; })\n .map(function (arg) {\n return Array.isArray(arg) ?\n addKeys(arg) :\n addLeafKeys(arg);\n }); };\n ;\n addKeys(args);\n return Object\n .keys(result)\n .map(function (key) { return (result[key] && key) || null; })\n .filter(function (el) { return el !== null; })\n .join(' ');\n};\n","/**\n * @hidden\n */\nexport var isDifferentOffset = function (oldOffset, newOffset) {\n var oldLeft = oldOffset.left, oldTop = oldOffset.top;\n var newLeft = newOffset.left, newTop = newOffset.top;\n return Math.abs(oldLeft - newLeft) >= 1 || Math.abs(oldTop - newTop) >= 1;\n};\n/**\n * @hidden\n */\nexport var hasBoundingRect = function (elem) { return !!elem.getBoundingClientRect; };\n/**\n * @hidden\n */\nexport var FRAME_DURATION = 1000 / 60; // 1000ms divided by 60fps\n/**\n * @hidden\n */\nexport var throttle = function (func, wait, options) {\n if (options === void 0) { options = {}; }\n var timeout, context, args, result;\n var previous = 0;\n options = options || {};\n var later = function () {\n previous = options.leading === false ? 0 : new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n };\n var throttled = function () {\n var now = new Date().getTime();\n if (!previous && options.leading === false) {\n previous = now;\n }\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n }\n else if (!timeout && options.trailing !== false) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n return throttled;\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-popup',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1642515994,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as PropTypes from 'prop-types';\nimport { slide } from './animation';\nimport { canUseDOM, ZIndexContext, validatePackage, classNames } from '@progress/kendo-react-common';\nimport { AlignPoint, alignElement, domUtils, positionElement, Collision as CollisionEnum } from '@progress/kendo-popup-common';\nimport { throttle, FRAME_DURATION } from './util';\nimport { packageMetadata } from './package-metadata';\nvar DEFAULT_POPUP_ZINDEX = 100;\nvar ZINDEX_POPUP_STEP = 1;\nfunction isEquivalent(a, b) {\n if (a === b) {\n return true;\n }\n if (!!a !== !!b) {\n return false;\n }\n var aProps = Object.getOwnPropertyNames(a);\n var bProps = Object.getOwnPropertyNames(b);\n if (aProps.length !== bProps.length) {\n return false;\n }\n for (var i = 0; i < aProps.length; i++) {\n var propName = aProps[i];\n if (a[propName] !== b[propName]) {\n return false;\n }\n }\n return true;\n}\nvar DEFAULT_OFFSET = {\n left: -1000,\n top: 0\n};\nvar Status;\n(function (Status) {\n Status[\"hiding\"] = \"hiding\";\n Status[\"hidden\"] = \"hidden\";\n Status[\"showing\"] = \"showing\";\n Status[\"shown\"] = \"shown\";\n Status[\"reposition\"] = \"reposition\";\n})(Status || (Status = {}));\nvar ANIMATION_CONTAINER = 'k-animation-container';\nvar ANIMATION_CONTAINER_SHOWN = 'k-animation-container-shown';\nvar ANIMATION_CONTAINER_RELATIVE = 'k-animation-container-relative';\nvar ANIMATION_CONTAINER_CHILD = 'k-child-animation-container';\nvar K_POPUP = 'k-popup';\n/**\n * @hidden\n */\nvar PopupWithoutContext = /** @class */ (function (_super) {\n __extends(PopupWithoutContext, _super);\n function PopupWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = { current: Status.hidden, previous: Status.hidden, props: {} };\n _this._popup = null;\n _this.show = function (popup) {\n _this.setPosition(popup);\n _this.animate(popup.firstChild, 'enter', _this.onOpened);\n _this.setState({ current: Status.shown, previous: _this.state.current });\n };\n _this.setPosition = function (popup) {\n var _a = _this.props, anchorAlign = _a.anchorAlign, popupAlign = _a.popupAlign, collision = _a.collision, offset = _a.offset, anchor = _a.anchor, margin = _a.margin, scale = _a.scale, positionMode = _a.positionMode;\n var alignedOffset = alignElement({\n anchor: anchor,\n anchorAlign: anchorAlign,\n element: popup,\n elementAlign: popupAlign,\n offset: offset,\n margin: margin,\n positionMode: positionMode,\n scale: scale\n });\n var position = positionElement({\n anchor: anchor,\n anchorAlign: anchorAlign,\n element: popup,\n elementAlign: popupAlign,\n collisions: collision,\n currentLocation: alignedOffset,\n margin: _this.props.margin\n });\n popup.style.top = position.offset.top + 'px';\n popup.style.left = position.offset.left + 'px';\n _this._collisions = {\n fit: position.fit,\n fitted: position.fitted,\n flip: position.flip,\n flipped: position.flipped\n };\n if (_this.props.onPosition) {\n var event_1 = {\n target: _this,\n flipped: position.flipped,\n fitted: position.fitted\n };\n _this.props.onPosition.call(undefined, event_1);\n }\n };\n _this.onOpened = function () {\n var element = _this._popup;\n if (!element) {\n return;\n }\n if (_this.props.show) {\n element.classList.add(ANIMATION_CONTAINER_SHOWN);\n }\n _this.attachRepositionHandlers(element);\n if (_this.props.onOpen) {\n _this.props.onOpen.call(undefined, { target: _this });\n }\n };\n _this.animate = function (element, type, callback) {\n if (!_this.props.popupAlign) {\n return;\n }\n var animationDirection;\n var _a = _this.props.popupAlign, horizontal = _a.horizontal, vertical = _a.vertical;\n if (horizontal === 'left' && vertical === 'center') {\n animationDirection = 'right';\n }\n else if (horizontal === 'right' && vertical === 'center') {\n animationDirection = 'left';\n }\n else if (vertical === 'top') {\n animationDirection = 'down';\n }\n else {\n animationDirection = 'up';\n }\n var flipPositions = {\n down: 'up',\n up: 'down',\n left: 'right',\n right: 'left'\n };\n if (_this._collisions && _this._collisions.flipped) {\n animationDirection = flipPositions[animationDirection];\n }\n slide(element, animationDirection, _this.animationDuration[type], type, callback);\n };\n _this.onClosing = function (popup) {\n if (!_this.props.show) {\n popup.classList.remove(ANIMATION_CONTAINER_SHOWN);\n }\n _this.detachRepositionHandlers();\n };\n _this.onClosed = function () {\n if (_this.state.current === Status.hiding && _this.state.previous === Status.shown) {\n _this.setState({ current: Status.hidden, previous: _this.state.current });\n }\n if (_this.props.onClose) {\n _this.props.onClose.call(undefined, { target: _this });\n }\n };\n _this.getCurrentZIndex = function () {\n return _this.context ? _this.context + ZINDEX_POPUP_STEP : DEFAULT_POPUP_ZINDEX;\n };\n validatePackage(packageMetadata);\n _this.reposition = throttle(_this.reposition.bind(_this), FRAME_DURATION);\n return _this;\n }\n /**\n * @hidden\n */\n PopupWithoutContext.getDerivedStateFromProps = function (props, state) {\n var show = props.show, anchor = props.anchor, anchorAlign = props.anchorAlign, appendTo = props.appendTo, collision = props.collision, popupAlign = props.popupAlign, className = props.className, popupClass = props.popupClass, style = props.style, offset = props.offset, contentKey = props.contentKey;\n var nextState = __assign({}, state, { props: {\n show: show, anchor: anchor, anchorAlign: anchorAlign, appendTo: appendTo, collision: collision, popupAlign: popupAlign, className: className, popupClass: popupClass, style: style, offset: offset, contentKey: contentKey\n } });\n if (props.show) {\n if (state.current === Status.hidden || state.current === Status.hiding) {\n return __assign({}, nextState, { current: Status.showing, previous: state.current });\n }\n if (state.current === Status.showing) {\n return __assign({}, nextState, { current: Status.shown, previous: state.current });\n }\n if (state.current === Status.shown &&\n (!isEquivalent(offset, state.props.offset) ||\n !isEquivalent(anchorAlign, state.props.anchorAlign) ||\n !isEquivalent(appendTo, state.props.appendTo) ||\n !isEquivalent(collision, state.props.collision) ||\n !isEquivalent(popupAlign, state.props.popupAlign) ||\n !isEquivalent(style, state.props.style) ||\n anchor !== state.props.anchor ||\n popupClass !== state.props.popupClass ||\n className !== state.props.className)) {\n return __assign({}, nextState, { current: Status.reposition, previous: state.current });\n }\n return nextState;\n }\n if (state.current === Status.hiding || state.current === Status.hidden) {\n return __assign({}, nextState, { current: Status.hidden, previous: state.current });\n }\n return __assign({}, nextState, { current: Status.hiding, previous: state.current });\n };\n /**\n * @hidden\n */\n PopupWithoutContext.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n else if (this.state.current === Status.hiding && this._popup) {\n this.onClosing(this._popup);\n this.animate(this._popup.firstChild, 'exit', this.onClosed);\n }\n else if (this.state.current === Status.reposition && this.state.previous === Status.shown) {\n this.setState({ current: Status.shown, previous: this.state.current });\n }\n else if (this.state.current === Status.shown &&\n prevProps.contentKey !== this.props.contentKey && this._popup) {\n this.setPosition(this._popup);\n }\n };\n /**\n * @hidden\n */\n PopupWithoutContext.prototype.componentDidMount = function () {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n };\n /**\n * @hidden\n */\n PopupWithoutContext.prototype.componentWillUnmount = function () {\n this.detachRepositionHandlers();\n };\n /**\n * @hidden\n */\n PopupWithoutContext.prototype.render = function () {\n var _this = this;\n var _a = this.props, children = _a.children, className = _a.className, popupClass = _a.popupClass, show = _a.show, id = _a.id, positionMode = _a.positionMode;\n var appendTo = this.props.appendTo ?\n this.props.appendTo :\n canUseDOM ?\n (this.props.anchor && this.props.anchor.ownerDocument ? this.props.anchor.ownerDocument.body : document.body)\n : undefined;\n if (this.state.current === Status.reposition && this.state.previous === Status.shown && this._popup) {\n this.setPosition(this._popup);\n }\n var style = Object.assign({}, { position: positionMode, top: 0, left: -10000 }, this.props.style || {});\n var closing = this.state.current === Status.hiding;\n if ((show || closing) && appendTo) {\n var currentZIndex = this.getCurrentZIndex();\n var popupElement = (React.createElement(ZIndexContext.Provider, { value: currentZIndex },\n React.createElement(\"div\", { className: classNames(ANIMATION_CONTAINER, ANIMATION_CONTAINER_RELATIVE, className), id: id, ref: function (e) { return _this._popup = e; }, style: __assign({ zIndex: currentZIndex }, style) },\n React.createElement(\"div\", { className: classNames(K_POPUP, popupClass, ANIMATION_CONTAINER_CHILD), style: { transitionDelay: '0ms' } }, children))));\n return ReactDOM.createPortal(popupElement, appendTo);\n }\n return null;\n };\n Object.defineProperty(PopupWithoutContext.prototype, \"animationDuration\", {\n get: function () {\n var animate = this.props.animate;\n var enter = 0;\n var exit = 0;\n if (animate) {\n if (animate === true) {\n enter = exit = 300;\n }\n else {\n enter = animate.openDuration || 0;\n exit = animate.closeDuration || 0;\n }\n }\n return { enter: enter, exit: exit };\n },\n enumerable: true,\n configurable: true\n });\n PopupWithoutContext.prototype.attachRepositionHandlers = function (element) {\n var _this = this;\n this.detachRepositionHandlers();\n this._scrollableParents = domUtils.scrollableParents(this.props.anchor || element);\n this._scrollableParents.map(function (p) { return p.addEventListener('scroll', _this.reposition); });\n window.addEventListener('resize', this.reposition);\n };\n PopupWithoutContext.prototype.detachRepositionHandlers = function () {\n var _this = this;\n if (this._scrollableParents) {\n this._scrollableParents.map(function (p) { return p.removeEventListener('scroll', _this.reposition); });\n this._scrollableParents = undefined;\n }\n window.removeEventListener('resize', this.reposition);\n };\n PopupWithoutContext.prototype.reposition = function () {\n this.setState({ current: Status.reposition, previous: this.state.current });\n };\n /**\n * @hidden\n */\n PopupWithoutContext.propTypes = {\n anchor: function (props) {\n var anchor = props.anchor;\n if (anchor && typeof anchor.nodeType !== 'number') {\n return new Error('Invalid prop `anchor` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n appendTo: function (props) {\n var element = props.appendTo;\n if (element && typeof element.nodeType !== 'number') {\n return new Error('Invalid prop `appendTo` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.object\n ]),\n id: PropTypes.string,\n popupClass: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.object\n ]),\n collision: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n CollisionEnum.fit,\n CollisionEnum.flip,\n CollisionEnum.none\n ]),\n vertical: PropTypes.oneOf([\n CollisionEnum.fit,\n CollisionEnum.flip,\n CollisionEnum.none\n ])\n }),\n anchorAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n popupAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n offset: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number\n }),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node\n ]),\n show: PropTypes.bool,\n animate: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })\n ]),\n margin: PropTypes.shape({\n horizontal: PropTypes.number,\n vertical: PropTypes.number\n }),\n positionMode: PropTypes.oneOf([\n 'fixed',\n 'absolute'\n ]),\n scale: PropTypes.number,\n style: PropTypes.object,\n onClose: PropTypes.func,\n onPosition: PropTypes.func,\n onOpen: PropTypes.func\n };\n /**\n * @hidden\n */\n PopupWithoutContext.defaultProps = {\n collision: {\n horizontal: CollisionEnum.fit,\n vertical: CollisionEnum.flip\n },\n anchorAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.bottom\n },\n popupAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.top\n },\n offset: DEFAULT_OFFSET,\n animate: true,\n show: false,\n margin: {\n horizontal: 0,\n vertical: 0\n },\n positionMode: 'absolute'\n };\n /**\n * @hidden\n */\n PopupWithoutContext.contextType = ZIndexContext;\n /**\n * @hidden\n */\n PopupWithoutContext.displayName = 'PopupComponent';\n return PopupWithoutContext;\n}(React.Component));\nexport { PopupWithoutContext };\n","import * as licensing from '@progress/kendo-licensing';\n/**\n * @hidden\n */\nexport function validatePackage(packageMetadata) {\n if (typeof licensing !== 'undefined') {\n licensing.validatePackage(packageMetadata);\n }\n else {\n var message = \"License activation failed for \" + packageMetadata.name + \"\\n\";\n message += 'The @progress/kendo-licensing script is not loaded.\\n';\n message += \"See \" + packageMetadata.licensingDocsUrl + \" for more information.\\n\";\n console.warn(message);\n }\n}\n","var __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};\nimport * as React from 'react';\nimport { PopupWithoutContext } from './PopupWithoutContext';\n/**\n * The PopupPropsContext. It allows to configure the Popup props from a wrapper component.\n *\n * @example\n * ```jsx-no-run\n * ({ ...props, appendTo: document.querySelector('myPopupsContainer') })}>\n * \n * \n * \n * ```\n */\nexport var PopupPropsContext = React.createContext(function (props) { return props; });\n/**\n * The KendoReact Popup component.\n */\nexport var Popup = React.forwardRef(function (props, ref) {\n var contextPropsCallback = React.useContext(PopupPropsContext);\n var popupProps = contextPropsCallback.call(undefined, props);\n return (React.createElement(PopupWithoutContext, __assign({ ref: ref }, popupProps)));\n});\nPopup.displayName = 'Popup';\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport { Popup } from '@progress/kendo-react-popup';\n/**\n * The GridColumnMenuWrapper component.\n */\nvar GridColumnMenuWrapper = /** @class */ (function (_super) {\n __extends(GridColumnMenuWrapper, _super);\n function GridColumnMenuWrapper() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /** @hidden */\n _this.state = {\n show: false\n };\n /** @hidden */\n _this.blurTimeout = undefined;\n /** @hidden */\n _this.blur = function () {\n clearTimeout(_this.blurTimeout);\n _this.blurTimeout = window.setTimeout(function () { _this.closeMenu(); });\n };\n /** @hidden */\n _this.focus = function () {\n clearTimeout(_this.blurTimeout);\n };\n /** @hidden */\n _this.anchorClick = function () {\n _this.setState({ show: !_this.state.show }, function () { return _this.state.show && _this._content && _this._content.focus(); });\n };\n /** @hidden */\n _this.closeMenu = function () {\n _this.setState({ show: false });\n };\n return _this;\n }\n GridColumnMenuWrapper.prototype.render = function () {\n var _this = this;\n var _a = this.props, ColumnMenu = _a.columnMenu, others = __rest(_a, [\"columnMenu\"]);\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: 'k-grid-column-menu k-grid-filter', ref: function (e) { return _this._anchor = e; }, onClick: this.anchorClick },\n React.createElement(\"span\", { className: 'k-icon k-i-more-vertical' })),\n React.createElement(Popup, { anchor: this._anchor, show: this.state.show },\n React.createElement(\"div\", { ref: function (e) { return _this._content = e; }, className: 'k-grid-columnmenu-popup', tabIndex: 0, onBlur: this.blur, onFocus: this.focus, style: { outline: 'none' } }, ColumnMenu && (React.createElement(ColumnMenu, __assign({}, others, { onCloseMenu: this.closeMenu })))))));\n };\n return GridColumnMenuWrapper;\n}(React.Component));\nexport { GridColumnMenuWrapper };\n","var _a;\n/**\n * @hidden\n */\nexport var noRecords = 'grid.noRecords';\n/**\n * @hidden\n */\nexport var pagerInfo = 'grid.pagerInfo';\n/**\n * @hidden\n */\nexport var pagerFirstPage = 'grid.pagerFirstPage';\n/**\n * @hidden\n */\nexport var pagerPreviousPage = 'grid.pagerPreviousPage';\n/**\n * @hidden\n */\nexport var pagerNextPage = 'grid.pagerNextPage';\n/**\n * @hidden\n */\nexport var pagerLastPage = 'grid.pagerLastPage';\n/**\n * @hidden\n */\nexport var pagerItemPerPage = 'grid.pagerItemsPerPage';\n/**\n * @hidden\n */\nexport var pagerPage = 'grid.pagerPage';\n/**\n * @hidden\n */\nexport var pagerOf = 'grid.pagerOf';\n/**\n * @hidden\n */\nexport var pagerTotalPages = 'grid.pagerTotalPages';\n/**\n * @hidden\n */\nexport var groupPanelEmpty = 'grid.groupPanelEmpty';\n/**\n * @hidden\n */\nexport var groupColumn = 'grid.groupColumn';\n/**\n * @hidden\n */\nexport var ungroupColumn = 'grid.ungroupColumn';\n/**\n * @hidden\n */\nexport var filterClearButton = 'grid.filterClearButton';\n/**\n * @hidden\n */\nexport var filterSubmitButton = 'grid.filterSubmitButton';\n/**\n * @hidden\n */\nexport var filterTitle = 'grid.filterTitle';\n/**\n * @hidden\n */\nexport var sortAscending = 'grid.sortAscending';\n/**\n * @hidden\n */\nexport var sortDescending = 'grid.sortDescending';\n/**\n * @hidden\n */\nexport var searchPlaceholder = 'grid.searchPlaceholder';\n/**\n * @hidden\n */\nexport var filterCheckAll = 'grid.filterCheckAll';\n/**\n * @hidden\n */\nexport var filterChooseOperator = 'grid.filterChooseOperator';\n/**\n * @hidden\n */\nexport var filterSelectedItems = 'grid.filterSelectedItems';\n/**\n * @hidden\n */\nexport var sortAriaLabel = 'grid.sortAriaLabel';\n/**\n * @hidden\n */\nexport var filterAriaLabel = 'grid.filterAriaLabel';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[noRecords] = 'No records available',\n _a[groupPanelEmpty] = 'Drag a column header and drop it here to group by that column',\n _a[filterClearButton] = 'Clear',\n _a[filterSubmitButton] = 'Filter',\n _a[filterTitle] = 'Filter',\n _a[sortAscending] = 'Sort Ascending',\n _a[sortDescending] = 'Sort Descending',\n _a[sortAriaLabel] = 'Sortable',\n _a[groupColumn] = 'Group Column',\n _a[ungroupColumn] = 'Ungroup Column',\n _a[pagerItemPerPage] = 'items per page',\n _a[pagerInfo] = '{0} - {1} of {2} items',\n _a[pagerFirstPage] = 'Go to the first page',\n _a[pagerPreviousPage] = 'Go to the previous page',\n _a[pagerNextPage] = 'Go to the next page',\n _a[pagerLastPage] = 'Go to the last page',\n _a[pagerPage] = 'Page',\n _a[pagerOf] = 'of',\n _a[pagerTotalPages] = '{0}',\n _a[searchPlaceholder] = 'Search',\n _a[filterCheckAll] = 'Check All',\n _a[filterChooseOperator] = 'Choose Operator',\n _a[filterSelectedItems] = 'selected items',\n _a[filterAriaLabel] = 'Filter',\n _a['grid.filterEqOperator'] = 'Is equal to',\n _a['grid.filterNotEqOperator'] = 'Is not equal to',\n _a['grid.filterIsNullOperator'] = 'Is null',\n _a['grid.filterIsNotNullOperator'] = 'Is not null',\n _a['grid.filterIsEmptyOperator'] = 'Is empty',\n _a['grid.filterIsNotEmptyOperator'] = 'Is not empty',\n _a['grid.filterStartsWithOperator'] = 'Starts with',\n _a['grid.filterContainsOperator'] = 'Contains',\n _a['grid.filterNotContainsOperator'] = 'Does not contain',\n _a['grid.filterEndsWithOperator'] = 'Ends with',\n _a['grid.filterGteOperator'] = 'Is greater than or equal to',\n _a['grid.filterGtOperator'] = 'Is greater than',\n _a['grid.filterLteOperator'] = 'Is less than or equal to',\n _a['grid.filterLtOperator'] = 'Is less than',\n _a['grid.filterIsTrue'] = 'Is true',\n _a['grid.filterIsFalse'] = 'Is false',\n _a['grid.filterBooleanAll'] = '(All)',\n _a['grid.filterAfterOrEqualOperator'] = 'Is after or equal to',\n _a['grid.filterAfterOperator'] = 'Is after',\n _a['grid.filterBeforeOperator'] = 'Is before',\n _a['grid.filterBeforeOrEqualOperator'] = 'Is before or equal to',\n _a['grid.filterAndLogic'] = 'And',\n _a['grid.filterOrLogic'] = 'Or',\n _a);\n/**\n * @hidden\n */\nexport function pagerMessagesMap(pagerMessageKey) {\n var messageKey = pagerMessageKey.replace(/^pager\\.([a-z])/, function (_match, group) { return 'grid.pager' + group.toUpperCase(); });\n return ({ messageKey: messageKey, defaultMessage: messages[messageKey] });\n}\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { GridColumnMenuWrapper } from '../columnMenu/GridColumnMenuWrapper';\n/**\n * @example\n * ```jsx\n * class App extends React.PureComponent {\n * state = {\n * details: false,\n * data: [\n * { foo: 'A1', bar: 'B1', b1: 1, b2:2 },\n * { foo: 'A2', bar: 'B2', b1: 3, b2:4 },\n * { foo: 'A3', bar: 'B2', b1: 5, b2:6 }\n * ]\n * };\n *\n * CustomHeaderCell = (props) =>\n * \n * {props.title || props.field + ' '}\n * \n * \n *\n * render() {\n * return (\n * \n * \n * \n * {this.state.barDetails && [\n * ,\n * \n * ]}\n * \n * \n * );\n * }\n * }\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar GridHeaderCell = /** @class */ (function (_super) {\n __extends(GridHeaderCell, _super);\n function GridHeaderCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n GridHeaderCell.prototype.render = function () {\n var columnMenuWrapperProps = this.props.columnMenuWrapperProps;\n var clickProps = this.props.onClick ? {\n onClick: this.props.onClick\n } : {};\n var defaultRendering = (React.createElement(\"span\", { className: 'k-cell-inner' },\n React.createElement(\"span\", __assign({ className: 'k-link' }, clickProps),\n React.createElement(\"span\", { className: 'k-column-title' }, this.props.title || this.props.field || '\\u00A0'),\n this.props.children),\n columnMenuWrapperProps.columnMenu && React.createElement(GridColumnMenuWrapper, __assign({}, columnMenuWrapperProps))));\n if (this.props.render) {\n return this.props.render.call(undefined, defaultRendering, this.props);\n }\n return defaultRendering;\n };\n return GridHeaderCell;\n}(React.Component));\nexport { GridHeaderCell };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { normalize } from '../interfaces/GridSortSettings';\nimport { ColumnResizer } from '../drag/ColumnResizer';\nimport { ColumnDraggable } from '../drag/ColumnDraggable';\nimport { GridHeaderCell } from './GridHeaderCell';\nimport { classNames, Keys } from '@progress/kendo-react-common';\nimport { HeaderThElement } from '@progress/kendo-react-data-tools';\nimport { registerForLocalization, provideLocalizationService as intl } from '@progress/kendo-react-intl';\nimport { messages, sortAriaLabel } from '../messages';\n/**\n * @hidden\n */\nvar sortSeqMap = {\n true: { 'asc': 'desc', 'desc': '', '': 'asc' },\n false: { 'asc': 'desc', 'desc': 'asc', '': 'asc' }\n};\n/**\n * @hidden\n */\nvar ariaSortMap = {\n 'none': 'none',\n 'asc': 'ascending',\n 'desc': 'descending'\n};\n/**\n * @hidden\n */\nvar HeaderRow = /** @class */ (function (_super) {\n __extends(HeaderRow, _super);\n function HeaderRow(props) {\n var _this = _super.call(this, props) || this;\n _this.serviceIndex = 0;\n _this.index = -1;\n _this.cellKeyDown = function (event, column) {\n if (event.isDefaultPrevented()) {\n return;\n }\n if (event.keyCode === Keys.enter) {\n _this.cellClick(event, column);\n }\n };\n _this.cells = function (rowIndexes) { return rowIndexes.map(function (columnIndex) {\n var column = _this.props.columns[columnIndex];\n var sortable = _this.props.sortable && column.sortable;\n var sortIndex = _this.props.sort ? _this.props.sort.findIndex(function (s) { return s.field === column.field; }) : -1;\n var sortDir = sortIndex >= 0 ? ((_this.props.sort)[sortIndex].dir || 'none') : 'none';\n var columnMenu = (column.columnMenu === null) ? null : (column.columnMenu || _this.props.columnMenu);\n var className = classNames({\n 'k-first': column.kFirst,\n 'k-filterable': Boolean(columnMenu),\n 'k-header': true,\n 'k-grid-header-sticky': column.locked,\n 'k-sorted': _this.props.sort && _this.props.sort.some(function (descriptor) { return descriptor.field === column.field; })\n }, column.headerClassName);\n var style = column.left !== undefined\n ? !_this.props.isRtl\n ? { left: column.left, right: column.right }\n : { left: column.right, right: column.left }\n : {};\n var sortLabel = intl(_this).toLanguageString(sortAriaLabel, messages[sortAriaLabel]);\n var ariaAttrs = column.isAccessible ? {\n ariaSort: ariaSortMap[sortDir],\n role: 'columnheader',\n ariaColumnIndex: column.ariaColumnIndex,\n ariaSelected: false,\n ariaDescription: sortable ? sortLabel : ''\n } : {\n 'role': 'presentation'\n };\n var columnMenuWrapperProps = {\n column: {\n field: column.field,\n filter: column.filter\n },\n sortable: sortable && _this.props.sortable,\n sort: _this.props.sort,\n onSortChange: _this.props.sortChange,\n filter: _this.props.filter,\n filterable: _this.props.filterable && column.filterable,\n filterOperators: _this.props.filterOperators,\n onFilterChange: _this.props.filterChange,\n group: _this.props.group,\n groupable: _this.props.groupable,\n onGroupChange: _this.props.groupChange,\n columnMenu: columnMenu\n };\n var headerCellProps = {\n field: column.field,\n onClick: sortable && (function (e) { return _this.cellClick(e, column); }) || undefined,\n selectionChange: _this.props.selectionChange,\n title: column.title,\n selectionValue: column.headerSelectionValue,\n render: _this.props.cellRender,\n children: _this.sortIcon(sortIndex),\n columnMenuWrapperProps: columnMenuWrapperProps\n };\n var key = (column.declarationIndex >= 0) ? ++_this.index : --_this.serviceIndex;\n return (React.createElement(HeaderThElement, __assign({}, ariaAttrs, { key: key, colSpan: column.colSpan, rowSpan: column.rowSpan, className: className, style: style, columnId: column.id, navigatable: column.navigatable, onKeyDown: sortable && (function (e) { return _this.cellKeyDown(e, column); }) || undefined }),\n column.headerCell ? React.createElement(column.headerCell, __assign({}, headerCellProps)) : React.createElement(GridHeaderCell, __assign({}, headerCellProps)),\n _this.props.columnResize && _this.props.columnResize.resizable && column.resizable &&\n React.createElement(ColumnResizer, { key: 2, resize: function (e, element, end) {\n return _this.props.columnResize &&\n _this.props.columnResize.dragHandler(e, column, element, end);\n }, autofit: function (e) {\n return _this.props.columnResize &&\n _this.props.columnResize.dblClickHandler(e, [column.id]);\n } })));\n }); };\n _this.cellClick = _this.cellClick.bind(_this);\n return _this;\n }\n HeaderRow.prototype.cellClick = function (e, column) {\n e.preventDefault();\n if (!this.props.sortChange) {\n return;\n }\n var _a = normalize(this.props.sortable || false, column.sortable || false), allowUnsort = _a.allowUnsort, mode = _a.mode;\n var oldDescriptor = (this.props.sort || []).filter(function (d) { return d.field === column.field; })[0];\n var dir = sortSeqMap[allowUnsort][oldDescriptor && oldDescriptor.dir || ''];\n var newDescriptor = (mode === 'single') ?\n [] : (this.props.sort || []).filter(function (d) { return d.field !== column.field; });\n if (dir !== '' && column.field) {\n newDescriptor.push({ field: column.field, dir: dir });\n }\n this.props.sortChange(newDescriptor, e);\n };\n HeaderRow.prototype.sortIcon = function (sortIndex) {\n if (!this.props.sort) {\n return null;\n }\n return sortIndex >= 0 && [\n React.createElement(\"span\", { key: 1, className: 'k-icon k-i-sort-' + this.props.sort[sortIndex].dir + '-sm' }),\n this.props.sort.length > 1 && React.createElement(\"span\", { key: 2, className: \"k-sort-order\" }, sortIndex + 1)\n ];\n };\n HeaderRow.prototype.render = function () {\n var _this = this;\n this.serviceIndex = 0;\n this.index = -1;\n return this.props.columnsMap.map(function (rowIndexes, i) {\n return _this.props.pressHandler && (React.createElement(ColumnDraggable, { key: i, pressHandler: _this.props.pressHandler, dragHandler: _this.props.dragHandler, releaseHandler: _this.props.releaseHandler, ariaRowIndex: i + 1 }, _this.cells(rowIndexes))) || React.createElement(\"tr\", { role: \"row\", \"aria-rowindex\": i + 1 }, _this.cells(rowIndexes));\n });\n };\n return HeaderRow;\n}(React.Component));\nexport { HeaderRow };\nregisterForLocalization(HeaderRow);\n","import { messages } from './messages';\n/**\n * @hidden\n */\nexport var filterLogicList = [\n { text: 'grid.filterAndLogic', operator: 'and' },\n { text: 'grid.filterOrLogic', operator: 'or' }\n];\n/**\n * @hidden\n */\nexport var operators = {\n 'text': [\n { text: 'grid.filterContainsOperator', operator: 'contains' },\n { text: 'grid.filterNotContainsOperator', operator: 'doesnotcontain' },\n { text: 'grid.filterEqOperator', operator: 'eq' },\n { text: 'grid.filterNotEqOperator', operator: 'neq' },\n { text: 'grid.filterStartsWithOperator', operator: 'startswith' },\n { text: 'grid.filterEndsWithOperator', operator: 'endswith' },\n { text: 'grid.filterIsNullOperator', operator: 'isnull' },\n { text: 'grid.filterIsNotNullOperator', operator: 'isnotnull' },\n { text: 'grid.filterIsEmptyOperator', operator: 'isempty' },\n { text: 'grid.filterIsNotEmptyOperator', operator: 'isnotempty' }\n ],\n 'numeric': [\n { text: 'grid.filterEqOperator', operator: 'eq' },\n { text: 'grid.filterNotEqOperator', operator: 'neq' },\n { text: 'grid.filterGteOperator', operator: 'gte' },\n { text: 'grid.filterGtOperator', operator: 'gt' },\n { text: 'grid.filterLteOperator', operator: 'lte' },\n { text: 'grid.filterLtOperator', operator: 'lt' },\n { text: 'grid.filterIsNullOperator', operator: 'isnull' },\n { text: 'grid.filterIsNotNullOperator', operator: 'isnotnull' }\n ],\n 'date': [\n { text: 'grid.filterEqOperator', operator: 'eq' },\n { text: 'grid.filterNotEqOperator', operator: 'neq' },\n { text: 'grid.filterAfterOrEqualOperator', operator: 'gte' },\n { text: 'grid.filterAfterOperator', operator: 'gt' },\n { text: 'grid.filterBeforeOperator', operator: 'lt' },\n { text: 'grid.filterBeforeOrEqualOperator', operator: 'lte' },\n { text: 'grid.filterIsNullOperator', operator: 'isnull' },\n { text: 'grid.filterIsNotNullOperator', operator: 'isnotnull' }\n ],\n 'boolean': [\n { text: 'grid.filterEqOperator', operator: 'eq' }\n ]\n};\n/**\n * @hidden\n */\nexport var IsUnaryFilter = function (operator) {\n return operator === 'isnull' || operator === 'isnotnull' || operator === 'isempty' || operator === 'isnotempty';\n};\n/**\n * @hidden\n */\nexport var operatorMap = function (iterable, service) { return iterable.map(function (operator) { return ({\n text: service.toLanguageString(operator.text, messages[operator.text]),\n operator: operator.operator\n}); }); };\n/**\n * @hidden\n */\nexport var defaultBooleanOperator = 'eq';\n/**\n * @hidden\n */\nexport var booleanFilterValues = [\n { text: 'grid.filterBooleanAll', operator: '' },\n { text: 'grid.filterIsTrue', operator: true },\n { text: 'grid.filterIsFalse', operator: false }\n];\n/**\n * @hidden\n */\nexport var defaultHideSecondFilter = {\n text: false,\n numeric: false,\n date: false,\n boolean: true\n};\n/**\n * @hidden\n */\nexport var cellInputChange = function (value, e, props) {\n var defaultOperator = getDefaultOperator(props.operators);\n var operator = props.operator;\n switch (props.filterType) {\n case 'numeric':\n if (!operator || IsUnaryFilter(operator)) {\n // change the operator to default\n operator = defaultOperator;\n }\n if (value === null && operator === defaultOperator) {\n // clear only the default operator\n operator = '';\n }\n break;\n case 'date':\n if (!operator || IsUnaryFilter(operator)) {\n operator = defaultOperator;\n }\n if (value === null && operator === defaultOperator) {\n operator = '';\n }\n break;\n case 'text':\n if (!operator || IsUnaryFilter(operator)) {\n operator = defaultOperator;\n }\n if (!value && operator === defaultOperator) {\n operator = '';\n }\n break;\n default: return;\n }\n props.onChange({ value: value, operator: operator, syntheticEvent: e });\n};\n/**\n * @hidden\n */\nexport var getDefaultOperator = function (filterOperators, filterType) {\n if (filterType) {\n return filterOperators[filterType][0].operator;\n }\n else {\n return filterOperators[0].operator;\n }\n};\n/**\n * @hidden\n */\nexport var getFilterType = function (filterType) {\n return filterType || 'text';\n};\n/**\n * @hidden\n */\nexport var cellBoolDropdownChange = function (event, onChange) {\n var item = event.target.value;\n onChange({\n value: item.operator,\n operator: item.operator === '' ? '' : defaultBooleanOperator,\n syntheticEvent: event.syntheticEvent\n });\n};\n/**\n * @hidden\n */\nexport var cellOperatorChange = function (event, currentValue, onChange) {\n var value = currentValue;\n var item = event.target.value;\n if (!event.target.state.opened) {\n return;\n }\n if (IsUnaryFilter(item.operator)) {\n // clear the value to avoid confusion on what is filtered\n value = null;\n }\n if (currentValue === null && !IsUnaryFilter(item.operator)) {\n value = undefined;\n }\n onChange({ value: value, operator: item.operator, syntheticEvent: event.syntheticEvent });\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nimport { NumericTextBox } from '@progress/kendo-react-inputs';\nimport { DatePicker } from '@progress/kendo-react-dateinputs';\nimport { messages, filterClearButton, filterChooseOperator } from '../messages';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { cellBoolDropdownChange, cellInputChange, cellOperatorChange } from '../filterCommon';\nvar GridFilterCell = /** @class */ (function (_super) {\n __extends(GridFilterCell, _super);\n function GridFilterCell(props) {\n var _this = _super.call(this, props) || this;\n _this.renderOperatorEditor = function (localization) {\n if (_this.props.filterType === 'boolean') {\n return;\n }\n var value = _this.props.operators.find(function (item) { return item.operator === _this.props.operator; }) || null;\n return (React.createElement(DropDownList, { value: value, onChange: _this.operatorChange, className: \"k-dropdown-operator\", iconClassName: \"k-i-filter k-icon\", data: _this.props.operators, textField: \"text\", title: localization.toLanguageString(filterChooseOperator, messages[filterChooseOperator]), popupSettings: {\n width: ''\n } }));\n };\n _this.inputChange = _this.inputChange.bind(_this);\n _this.clear = _this.clear.bind(_this);\n _this.operatorChange = _this.operatorChange.bind(_this);\n _this.boolDropdownChange = _this.boolDropdownChange.bind(_this);\n return _this;\n }\n /**\n * @hidden\n */\n GridFilterCell.prototype.render = function () {\n var localizationService = provideLocalizationService(this);\n var defaultRendering = (React.createElement(\"div\", { className: \"k-filtercell\" },\n React.createElement(\"div\", { className: \"k-filtercell-wrapper\" },\n this.filterComponent(this.props.filterType, this.props.value, this.props.booleanValues),\n React.createElement(\"div\", { className: \"k-filtercell-operator\" },\n this.renderOperatorEditor(localizationService),\n React.createElement(\"button\", { className: \n /* button is always visible if there is either value or operator */\n (!(this.props.value === null || this.props.value === '') || this.props.operator) ?\n 'k-button k-button-icon k-clear-button-visible' :\n 'k-button k-button-icon', title: localizationService.toLanguageString(filterClearButton, messages[filterClearButton]), type: \"button\", onClick: this.clear },\n React.createElement(\"span\", { className: \"k-icon k-i-filter-clear\" }))))));\n if (this.props.render) {\n return this.props.render.call(undefined, defaultRendering, this.props);\n }\n return defaultRendering;\n };\n GridFilterCell.prototype.inputChange = function (value, e) {\n cellInputChange(value, e, this.props);\n };\n GridFilterCell.prototype.operatorChange = function (event) {\n cellOperatorChange(event, this.props.value, this.props.onChange);\n };\n GridFilterCell.prototype.boolDropdownChange = function (event) {\n cellBoolDropdownChange(event, this.props.onChange);\n };\n GridFilterCell.prototype.clear = function (e) {\n e.preventDefault();\n this.props.onChange({ value: '', operator: '', syntheticEvent: e });\n };\n GridFilterCell.prototype.filterComponent = function (filterType, value, booleanValues) {\n var _this = this;\n switch (filterType) {\n case 'numeric':\n return (React.createElement(NumericTextBox, { value: value, onChange: function (e) { _this.inputChange(e.value, e.syntheticEvent); }, title: this.props.title }));\n case 'date':\n return (React.createElement(DatePicker, { value: value, onChange: function (e) { _this.inputChange(e.value, e.syntheticEvent); }, title: this.props.title }));\n case 'boolean':\n var noFilterSet_1 = function (filter) { return filter === null || filter === undefined; };\n return (React.createElement(DropDownList, { onChange: this.boolDropdownChange, value: booleanValues.find(function (item) { return item.operator === (noFilterSet_1(value) ? '' : value); }), data: booleanValues, textField: \"text\", title: this.props.title }));\n default: return (React.createElement(\"input\", { className: \"k-textbox\", value: value || '', onChange: function (e) { _this.inputChange(e.target.value, e); }, title: this.props.title }));\n }\n };\n return GridFilterCell;\n}(React.Component));\nexport { GridFilterCell };\nregisterForLocalization(GridFilterCell);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { GridFilterCell } from '../cells/GridFilterCell';\nimport { operatorMap, booleanFilterValues, getFilterType } from '../filterCommon';\nimport { tableKeyboardNavigationTools as navigationTools, HeaderThElement } from '@progress/kendo-react-data-tools';\nimport { filterAriaLabel, messages } from '../messages';\n/**\n * @hidden\n */\nexport var FILTER_ROW_CLASS = 'k-filter-row';\n/**\n *\n * @hidden\n */\nvar FilterRow = /** @class */ (function (_super) {\n __extends(FilterRow, _super);\n function FilterRow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterRow.prototype.headerCellClassName = function (field, locked) {\n var result = \"\" + (locked ? 'k-grid-header-sticky' : '');\n if (this.props.sort &&\n this.props.sort.filter(function (descriptor) { return descriptor.field === field; }).length > 0) {\n result += ' k-sorted';\n }\n return result;\n };\n FilterRow.prototype.setFilter = function (value, operator, field, e) {\n if (!this.props.filterChange) {\n return;\n }\n var filters = [];\n if (value !== '' && value !== null || operator !== '') {\n filters.push({\n field: field,\n operator: operator,\n value: value\n });\n }\n if (this.props.filter && this.props.filter.filters) {\n var oldFilters = this.props.filter.filters || [];\n oldFilters.forEach(function (filter) {\n var descriptor = filter;\n if (descriptor && descriptor.field !== field) {\n filters.push(descriptor);\n }\n });\n }\n var logic = this.props.filter && this.props.filter.logic ? this.props.filter.logic : 'and';\n this.props.filterChange(filters.length > 0 ? { logic: logic, filters: filters } : null, e);\n };\n FilterRow.prototype.render = function () {\n var _this = this;\n var intl = provideLocalizationService(this);\n var oldFilters = this.props.filter && this.props.filter.filters || [];\n var activeFilter = function (field) {\n if (field === undefined) {\n return;\n }\n var currentFilters = oldFilters.filter(function (filter) { return filter.field === field; });\n return currentFilters.length ? currentFilters[0] : undefined;\n };\n var serviceIndex = 0, index = -1;\n var filterCells = this.props.columns.filter(function (c) { return c.children.length === 0; })\n .map(function (column) {\n var filterType = getFilterType(column.filter);\n var currentActiveFilter = activeFilter(column.field);\n var filterCellProps = column.filterable && {\n render: _this.props.cellRender,\n field: column.field,\n title: column.filterTitle,\n value: currentActiveFilter ? currentActiveFilter.value : filterType === 'text' ? '' : null,\n operator: currentActiveFilter && currentActiveFilter.operator,\n operators: operatorMap(_this.props.filterOperators[filterType] || [], intl),\n booleanValues: operatorMap(booleanFilterValues, intl),\n filterType: filterType,\n onChange: function (e) { _this.setFilter(e.value, e.operator, column.field, e.syntheticEvent); }\n };\n var key = (column.declarationIndex >= 0) ? ++index : --serviceIndex;\n var ariaAttrs = {\n ariaLabel: column.filterable ? intl.toLanguageString(filterAriaLabel, messages[filterAriaLabel]) : undefined,\n ariaColumnIndex: column.ariaColumnIndex\n };\n var style = column.left !== undefined\n ? !_this.props.isRtl\n ? { left: column.left, right: column.right }\n : { left: column.right, right: column.left }\n : {};\n return (React.createElement(HeaderThElement, __assign({ key: key, columnId: navigationTools.getFilterColumnId(column.id), navigatable: column.navigatable, style: style, className: _this.headerCellClassName(column.field, column.locked) || undefined }, ariaAttrs), filterCellProps && (column.filterCell ?\n React.createElement(column.filterCell, __assign({}, filterCellProps)) :\n React.createElement(GridFilterCell, __assign({}, filterCellProps)))));\n });\n return React.createElement(\"tr\", { className: FILTER_ROW_CLASS, \"aria-rowindex\": this.props.ariaRowIndex, role: \"row\" }, filterCells);\n };\n return FilterRow;\n}(React.Component));\nexport { FilterRow };\nregisterForLocalization(FilterRow);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Draggable } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar GroupingIndicator = /** @class */ (function (_super) {\n __extends(GroupingIndicator, _super);\n function GroupingIndicator() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.onPress = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.onPress) {\n _this.props.onPress(data.event, element);\n }\n };\n /**\n * @hidden\n */\n _this.onDrag = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.onDrag) {\n _this.props.onDrag(data.event, element);\n }\n };\n /**\n * @hidden\n */\n _this.onRelease = function (data) {\n var element = _this.draggable && _this.draggable.element;\n if (element && _this.props.onRelease) {\n _this.props.onRelease(data.event);\n }\n };\n _this.sortChange = function (event) {\n event.preventDefault();\n if (_this.props.onSortChange) {\n var sort = (_this.props.dir === 'asc') ? 'desc' : 'asc';\n _this.props.onSortChange(event, sort);\n }\n };\n _this.groupRemove = function (event) {\n event.preventDefault();\n if (_this.props.onRemove) {\n _this.props.onRemove(event);\n }\n };\n return _this;\n }\n GroupingIndicator.prototype.render = function () {\n var _this = this;\n return (React.createElement(Draggable, { onPress: this.onPress, onDrag: this.onDrag, onRelease: this.onRelease, ref: function (component) { _this.draggable = component; } },\n React.createElement(\"div\", { className: \"k-indicator-container\", style: { touchAction: 'none' } },\n React.createElement(\"div\", { className: \"k-group-indicator\" },\n React.createElement(\"a\", { className: \"k-link\", href: \"#\", tabIndex: -1, onClick: this.sortChange },\n React.createElement(\"span\", { className: 'k-icon k-i-sort-' + this.props.dir + '-sm' }),\n this.props.title),\n React.createElement(\"a\", { className: \"k-button k-button-icon k-flat\", tabIndex: -1, onClick: this.groupRemove },\n React.createElement(\"span\", { className: \"k-icon k-i-group-delete\" }))))));\n };\n return GroupingIndicator;\n}(React.Component));\nexport { GroupingIndicator };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { GroupingIndicator } from '../drag/GroupingIndicator';\nimport { registerForLocalization, provideLocalizationService as intl } from '@progress/kendo-react-intl';\nimport { messages, groupPanelEmpty as messageKey } from './../messages';\n/**\n * @hidden\n */\nvar GroupPanel = /** @class */ (function (_super) {\n __extends(GroupPanel, _super);\n function GroupPanel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onGroupRemove = function (event, index) {\n var newGroups = _this.props.group.slice();\n newGroups.splice(index, 1);\n _this.props.groupChange(newGroups, event);\n };\n _this.onGroupSortChange = function (event, index, groupDesc, dir) {\n var group = Object.assign({}, groupDesc, { dir: dir });\n var newGroups = _this.props.group.slice();\n newGroups.splice(index, 1, group);\n _this.props.groupChange(newGroups, event);\n };\n return _this;\n }\n GroupPanel.prototype.render = function () {\n var _this = this;\n var groupsProp = this.props.group || [];\n var groups = groupsProp.map(function (groupDesc, index) { return (React.createElement(GroupingIndicator, { key: index, dir: groupDesc.dir || 'asc', title: _this.props.resolveTitle(groupDesc.field), onRemove: function (event) {\n _this.onGroupRemove(event, index);\n }, onSortChange: function (event, dir) {\n _this.onGroupSortChange(event, index, groupDesc, dir);\n }, onPress: _this.props.pressHandler, onDrag: _this.props.dragHandler, onRelease: _this.props.releaseHandler })); });\n return (React.createElement(\"div\", { ref: this.props.refCallback, className: \"k-grouping-header k-grouping-header-flex\" },\n groups,\n React.createElement(\"div\", { className: \"k-indicator-container\" },\n !groups.length && intl(this).toLanguageString(messageKey, messages[messageKey]),\n \"\\u00A0\")));\n };\n return GroupPanel;\n}(React.Component));\nexport { GroupPanel };\nregisterForLocalization(GroupPanel);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { getScrollbarWidth } from '@progress/kendo-react-common';\nimport * as React from 'react';\n/**\n * @hidden\n */\nvar Footer = /** @class */ (function (_super) {\n __extends(Footer, _super);\n function Footer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.footerWrap = null;\n _this.table = null;\n _this.scrollbarWidth = getScrollbarWidth();\n return _this;\n }\n Footer.prototype.componentDidMount = function () {\n this.setState({});\n };\n /**\n *\n * @param scrollLeft - Scrolls to the left (in pixels).\n */\n Footer.prototype.setScrollLeft = function (scrollLeft) {\n if (this.footerWrap) {\n this.footerWrap.scrollLeft = scrollLeft;\n }\n };\n /**\n *\n * @param width - Scrolls the width (in pixels).\n */\n Footer.prototype.setWidth = function (width) {\n if (this.table) {\n this.table.style.width = width + 'px';\n }\n };\n Footer.prototype.render = function () {\n var _this = this;\n if (!this.props.staticHeaders) {\n return (React.createElement(\"tfoot\", { className: \"k-grid-footer\" }, this.props.row));\n }\n return (React.createElement(\"div\", { className: \"k-grid-footer\", role: \"presentation\" },\n React.createElement(\"div\", { ref: function (div) { _this.footerWrap = div; }, className: \"k-grid-footer-wrap\", style: this.scrollbarWidth ? {} : { borderWidth: 0 }, role: \"presentation\" },\n React.createElement(\"table\", { ref: function (table) { _this.table = table; }, role: \"presentation\" },\n React.createElement(\"colgroup\", { ref: function (e) { _this.props.columnResize.colGroupFooter = e; }, role: \"presentation\" }, this.props.cols),\n React.createElement(\"tfoot\", { role: \"presentation\" }, this.props.row)))));\n };\n return Footer;\n}(React.Component));\nexport { Footer };\n","/**\n * @hidden\n */\nvar VirtualScroll = /** @class */ (function () {\n function VirtualScroll(cached) {\n this.containerHeight = 0;\n this.topCacheCount = 0; // 4;\n this.attendedSkip = 0; // -4;\n this.propsSkip = 0;\n this.total = 0;\n this.scrollableVirtual = false;\n this.realSkip = 0;\n this.pageSize = 0;\n this.heightContainer = null;\n this.fixedScroll = false;\n this.askedSkip = undefined;\n this.prevScrollPos = 0;\n this.tableTranslate = 0;\n this.scrollSyncing = false;\n if (cached) {\n this.topCacheCount = 4;\n this.attendedSkip = -this.topCacheCount;\n }\n this.scrollHandler = this.scrollHandler.bind(this);\n }\n Object.defineProperty(VirtualScroll.prototype, \"rowHeights\", {\n /**\n * @return - The row heights in an array.\n */\n get: function () {\n var result = [];\n var allRows = this.tableBody && this.tableBody.children || [];\n var accumulate = 0;\n for (var i = 0; i < allRows.length; i++) {\n if (allRows[i].className.indexOf('k-grouping-row') > -1) {\n accumulate += allRows[i].scrollHeight;\n continue;\n }\n if (allRows[i].className.indexOf('k-detail-row') > -1) {\n result[result.length - 1].line += allRows[i].scrollHeight;\n }\n else {\n result.push({\n line: allRows[i].scrollHeight,\n acc: accumulate\n });\n accumulate = 0;\n }\n }\n return result;\n },\n enumerable: true,\n configurable: true\n });\n VirtualScroll.prototype.changePage = function (skip, e) {\n this.attendedSkip = skip - this.topCacheCount;\n this.PageChange({\n skip: Math.max(0, skip - this.topCacheCount),\n take: this.pageSize\n }, e);\n };\n VirtualScroll.prototype.translate = function (dY) {\n this.tableTranslate = dY;\n if (this.scrollableVirtual && this.table) {\n this.table.style.transform = 'translateY(' + dY + 'px)';\n }\n };\n VirtualScroll.prototype.syncScroll = function () {\n if (!this.scrollableVirtual || !this.container) {\n return;\n }\n this.syncTimeout = null;\n var scrollTop = this.container.scrollTop;\n var containerHeight = this.containerHeight; // = this.container.scrollHeight;\n var rowHeights = this.rowHeights;\n var percentage = (scrollTop - this.tableTranslate) / rowHeights[0].line;\n var targetFloorScrollPosition = Math.floor((containerHeight) * (this.propsSkip + percentage) / this.total);\n if (this.container.scrollTop !== (this.prevScrollPos = targetFloorScrollPosition)) {\n this.scrollSyncing = true;\n this.container.scrollTop = (this.prevScrollPos = targetFloorScrollPosition);\n }\n this.translate(this.tableTranslate + targetFloorScrollPosition - scrollTop);\n };\n VirtualScroll.prototype.reset = function () {\n this.scrollSyncing = true;\n if (this.fixedScroll) {\n return;\n }\n if (this.container) {\n this.container.scrollTop = 0;\n }\n this.translate(0);\n };\n VirtualScroll.prototype.localScrollUp = function (e) {\n if (!this.container) {\n return;\n }\n var heights = this.rowHeights;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.tableTranslate;\n var rowsCount = 0;\n var additionalOnTop = scrollTop - targetTranslate;\n if (additionalOnTop > 0) {\n return;\n }\n while ((rowsCount < this.topCacheCount + this.attendedSkip - this.realSkip)\n && this.propsSkip - rowsCount > 0 &&\n !(targetTranslate + (heights[heights.length - 1 - rowsCount].line + heights[heights.length - 1 - rowsCount].acc) + additionalOnTop <= scrollTop)) {\n targetTranslate -= heights[heights.length - 1 - rowsCount].line +\n heights[heights.length - 1 - rowsCount].acc;\n rowsCount++;\n }\n if (rowsCount === 0 && this.topCacheCount === 0 && this.attendedSkip > 0) {\n // allows local scrolling up, when top caching is disabled\n // for variable heights 'topCacheCount' should be atleast 1 to avoid flickering\n targetTranslate = Math.max(targetTranslate - heights[0].line, 0);\n rowsCount = 1;\n }\n if (this.propsSkip - rowsCount <= 0 && targetTranslate > scrollTop) {\n this.translate(0);\n this.changePage(0, e);\n this.container.scrollTop = 0;\n return;\n }\n if (targetTranslate > scrollTop) {\n targetTranslate = scrollTop;\n // need to handle these cases\n // if the item height is not available:\n // floor the translate to beginning of the item in absolute value\n }\n if (targetTranslate !== this.tableTranslate) {\n this.translate(targetTranslate);\n this.changePage(this.propsSkip - rowsCount, e);\n }\n };\n VirtualScroll.prototype.localScrollDown = function (e) {\n if (!this.container) {\n return;\n }\n var heights = this.rowHeights;\n var scrollTop = this.container.scrollTop;\n var targetTranslate = this.tableTranslate;\n var rowsCount = 0;\n while (rowsCount < heights.length - this.topCacheCount &&\n !(targetTranslate + heights[rowsCount].line + heights[rowsCount].acc > scrollTop)) {\n targetTranslate += heights[rowsCount].line + heights[rowsCount].acc;\n rowsCount++;\n }\n if (rowsCount >= heights.length - this.topCacheCount && this.propsSkip + rowsCount >= this.total) {\n this.translate(targetTranslate);\n this.changePage(this.total - 1, e);\n }\n else if (targetTranslate !== this.tableTranslate) {\n this.translate(targetTranslate);\n this.changePage(this.propsSkip + rowsCount, e);\n }\n };\n VirtualScroll.prototype.scrollNonStrict = function (e) {\n var floatRowIndex = this.total * this.prevScrollPos / (this.containerHeight);\n var rowIndex = Math.floor(floatRowIndex);\n if (rowIndex >= this.total) {\n rowIndex = this.total - 1;\n }\n var rowpercentage = Math.min(floatRowIndex - rowIndex, 1);\n var microAdjust = 0;\n var rowIndexOffset = rowIndex - this.propsSkip;\n var heights = this.rowHeights;\n if (rowIndexOffset >= 0 && rowIndexOffset <= 1) {\n microAdjust = -((heights[0].line + heights[0].acc) * rowpercentage);\n }\n else if (rowIndexOffset === -1) {\n microAdjust = -((heights[heights.length - 1].line + heights[heights.length - 1].acc) * rowpercentage);\n }\n this.translate(microAdjust + this.containerHeight * floatRowIndex / this.total);\n this.changePage(rowIndex, e);\n };\n VirtualScroll.prototype.scrollHandler = function (e) {\n if (!this.scrollableVirtual) {\n return;\n }\n if (this.scrollSyncing || !this.container || !this.table) {\n this.scrollSyncing = false;\n return;\n }\n var grid = this;\n clearTimeout(this.syncTimeout);\n this.syncTimeout = window.setTimeout(function () { grid.syncScroll(); }, 200);\n var scrollTop = this.container.scrollTop;\n var prev = this.prevScrollPos;\n this.prevScrollPos = scrollTop;\n if (this.askedSkip !== undefined) {\n this.translate(this.containerHeight * this.askedSkip / this.total);\n this.changePage(this.askedSkip, e);\n this.prevScrollPos = scrollTop;\n this.askedSkip = undefined;\n return;\n }\n if (scrollTop - prev < 0 && scrollTop > this.tableTranslate - this.table.scrollHeight / 10) {\n this.localScrollUp(e);\n }\n else if (scrollTop - prev > 0 && scrollTop < this.tableTranslate + this.table.scrollHeight * 2 / 3) {\n this.localScrollDown(e);\n }\n else {\n this.scrollNonStrict(e);\n }\n this.prevScrollPos = scrollTop;\n };\n return VirtualScroll;\n}());\nexport { VirtualScroll };\n","// offsetWidth() is slowly transition to reporting double instead of integet in all browsers\n// during this process (which is a bit back-and-forth) we need to make sure we are working across all browsers and versions\nvar OFFSET_ROUND = 1;\n/**\n * @hidden\n */\nvar ColumnResize = /** @class */ (function () {\n function ColumnResize(triggerResize) {\n var _this = this;\n /**\n * The settings for resizing the Grid.\n */\n this.resizable = false;\n this.isRtl = false;\n this.setIsRtl = function (isRtl) {\n _this.isRtl = isRtl;\n };\n this.dragHandler = function (event, column, dragCue, end) {\n var e = event.originalEvent;\n if (!end) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n var tdElement = dragCue.parentElement;\n if (!tdElement || !tdElement.parentElement) {\n return;\n }\n var oldWidth = tdElement.clientWidth;\n var newWidth = oldWidth;\n if (_this.isRtl) {\n newWidth += (dragCue.getBoundingClientRect().right - (dragCue.offsetWidth / 2)) - event.clientX;\n }\n else {\n newWidth += event.clientX - dragCue.getBoundingClientRect().left - (dragCue.offsetWidth / 2);\n }\n if (!end && Math.abs(newWidth - oldWidth) < 1) {\n return;\n }\n _this.fixateInitialWidths(tdElement.parentElement.clientWidth);\n _this.setWidths(column, Math.floor(newWidth) / oldWidth);\n var index = _this.columns.filter(function (c) { return !c.children.length; }).findIndex(function (c) { return c.id === column.id; });\n _this.onResize(index, oldWidth, newWidth, e, end, column.id);\n };\n this.dblClickHandler = function (event, columnIds) {\n var columns = _this.columns.filter(function (c) { return columnIds.indexOf(c.id) > -1; });\n if (!_this.colGroupMain || !columns.length) {\n return;\n }\n var leafsForAdjust = {};\n var stack = columns;\n while (stack.length > 0) {\n var currentCol = stack.pop();\n if (!currentCol) {\n break;\n }\n if (currentCol.children.length) {\n stack.push.apply(stack, currentCol.children);\n }\n else {\n leafsForAdjust[currentCol.id] = currentCol;\n }\n }\n var leafs = _this.columns.filter(function (c) { return !c.children.length; });\n var indexesForAdjust = [];\n leafs.forEach(function (currentColumn, index) {\n if (leafsForAdjust[currentColumn.id]) {\n indexesForAdjust.push(index);\n }\n });\n var tables = [_this.colGroupMain.parentElement];\n var colgroups = [_this.colGroupMain];\n if (_this.colGroupHeader) {\n tables.push(_this.colGroupHeader.parentElement);\n colgroups.push(_this.colGroupHeader);\n }\n if (_this.colGroupFooter) {\n tables.push(_this.colGroupFooter.parentElement);\n colgroups.push(_this.colGroupFooter);\n }\n tables.forEach(function (table) { return table.classList.add('k-autofitting'); });\n var maxWidths = [];\n colgroups.forEach(function (colgroup) {\n indexesForAdjust.forEach(function (columnIndex) {\n if (colgroup.children[columnIndex]) {\n colgroup.children[columnIndex].width = '';\n maxWidths[columnIndex] = Math.max(maxWidths[columnIndex] || 0, colgroup.children[columnIndex].offsetWidth + OFFSET_ROUND);\n }\n });\n });\n colgroups.forEach(function (colgroup) {\n indexesForAdjust.forEach(function (columnIndex) {\n if (colgroup.children[columnIndex]) {\n colgroup.children[columnIndex].width = maxWidths[columnIndex] + 'px';\n leafs[columnIndex].width = maxWidths[columnIndex];\n }\n });\n });\n tables.forEach(function (table) { return table.classList.remove('k-autofitting'); });\n _this.onResize(indexesForAdjust[0], 0, 0, event, true, columnIds[0]);\n };\n this.updateColElements = function (affectedColumns) {\n var leafColumns = _this.columns.filter(function (c) { return !c.children.length; });\n var difference = 1e-10;\n var _loop_1 = function (i) {\n var currentColumn = affectedColumns[i];\n var colIndex = leafColumns.findIndex(function (c) { return c.id === currentColumn.id; });\n var currentColumnFloatWidth = parseFloat((currentColumn.width || 0).toString());\n var currentColumnFloorWidth = Math.floor(currentColumnFloatWidth);\n difference += currentColumnFloatWidth - currentColumnFloorWidth;\n var currentWidth = currentColumnFloorWidth + Math.floor(difference);\n difference -= Math.floor(difference);\n if (_this.colGroupMain && _this.colGroupMain.children[colIndex]) {\n _this.colGroupMain.children[colIndex].width = currentWidth + 'px';\n }\n if (_this.colGroupHeader && _this.colGroupHeader.children[colIndex]) {\n // static headers\n _this.colGroupHeader.children[colIndex].width = currentWidth + 'px';\n }\n if (_this.colGroupFooter && _this.colGroupFooter.children[colIndex]) {\n // static footers\n _this.colGroupFooter.children[colIndex].width = currentWidth + 'px';\n }\n };\n for (var i = 0; i < affectedColumns.length; i++) {\n _loop_1(i);\n }\n };\n this.onResize = triggerResize;\n }\n ColumnResize.prototype.fixateInitialWidths = function (width) {\n var columns = this.columns.filter(function (c) { return !c.children.length; });\n var remainingCount = 0;\n var cols = this.colGroupMain ? this.colGroupMain.children : [];\n for (var i = 0; i < cols.length; i++) {\n if (cols[i].width) {\n width -= parseFloat(cols[i].width);\n }\n else {\n remainingCount++;\n }\n }\n if (remainingCount === 0) {\n return;\n }\n var perCol = Math.floor(width / remainingCount);\n for (var i = 0; i < cols.length; i++) {\n var col = cols[i];\n if (!col.width) {\n col.width = perCol;\n columns[i].width = perCol.toString();\n if (this.colGroupHeader) {\n this.colGroupHeader.children[i].width = perCol;\n }\n if (this.colGroupFooter) {\n this.colGroupFooter.children[i].width = perCol;\n }\n }\n }\n };\n ColumnResize.prototype.setWidths = function (column, coef) {\n var indexInOriginal = this.columns.findIndex(function (c) { return c.id === column.id; });\n var toAdjust = [];\n var more = column.children.length;\n for (var i = indexInOriginal + 1; more > 0 && i < this.columns.length; i++, more--) {\n var cc = this.columns[i];\n if (!cc.children.length) {\n toAdjust.push(cc);\n }\n else {\n more += cc.children.length;\n }\n }\n if (toAdjust.length === 0) {\n toAdjust.push(column);\n }\n toAdjust.forEach(function (colToAdjust) {\n var targetWidth = colToAdjust.width ? parseFloat(colToAdjust.width.toString()) * coef : 0;\n var min = colToAdjust.minResizableWidth === undefined ? 10 : colToAdjust.minResizableWidth;\n if (targetWidth < min) {\n targetWidth = min;\n }\n colToAdjust.width = targetWidth;\n });\n this.updateColElements(toAdjust);\n return toAdjust;\n };\n return ColumnResize;\n}());\nexport { ColumnResize };\n","import { getIndex } from '@progress/kendo-react-data-tools';\n/**\n * @hidden\n */\nvar CommonDragLogic = /** @class */ (function () {\n function CommonDragLogic(columnReorder, groupReorder, columnToGroup) {\n var _this = this;\n this.reorderable = false;\n this.groupable = false;\n this.startColumn = -1;\n this.startGroup = -1;\n this.currentColumn = -1;\n this.currentGroup = -1;\n this.dropElementClue = null;\n this.dragElementClue = null;\n this.groupPanelDivElement = null;\n this.refGroupPanelDiv = function (e) {\n _this.groupPanelDivElement = e;\n };\n this.refDropElementClue = function (e) {\n _this.dropElementClue = e;\n };\n this.refDragElementClue = function (e) {\n _this.dragElementClue = e;\n };\n this.pressHandler = function (event, element) {\n var startColumn = _this.getColumnIndex(event, element);\n _this.startGroup = _this.getGroupIndex(event);\n if (startColumn >= 0) {\n var col = _this.columns[startColumn];\n if (col.reorderable && _this.reorderable || col.groupable && _this.groupable) {\n _this.startColumn = startColumn;\n }\n }\n };\n this.dragHandler = function (event, element) {\n if (!event.isTouch) {\n event.originalEvent.preventDefault();\n }\n event.originalEvent.stopPropagation();\n if (_this.startColumn === -1 && _this.startGroup === -1) {\n return;\n }\n _this.currentColumn = _this.getColumnIndex(event, element);\n _this.currentGroup = _this.getGroupIndex(event);\n if (_this.groupPanelDivElement && _this.startGroup >= 0) {\n _this.currentGroup = Math.min(_this.currentGroup, _this.groupPanelDivElement.children.length - 2);\n }\n var invalidIndex = !_this.isValid();\n if (invalidIndex) {\n _this.currentColumn = -1;\n _this.currentGroup = -1;\n }\n var targetElement = (_this.currentColumn >= 0) ?\n element.children[_this.columns[_this.currentColumn].index] :\n _this.groupPanelDivElement && _this.groupPanelDivElement.children[_this.currentGroup];\n _this.updateDragElementClue(event, element, targetElement, invalidIndex);\n _this.updateDropElementClue(event, element, targetElement, invalidIndex);\n };\n this.releaseHandler = function (event) {\n var prevColumnIndex = _this.startColumn;\n var nextColumnIndex = _this.currentColumn;\n var prevGroupIndex = _this.startGroup;\n var nextGroupIndex = _this.currentGroup;\n event.originalEvent.preventDefault();\n if (_this.dropElementClue) {\n _this.dropElementClue.setState({ visible: false });\n }\n if (_this.dragElementClue) {\n _this.dragElementClue.setState({ visible: false });\n }\n var isValid = _this.isValid();\n _this.startColumn = _this.startGroup = _this.currentColumn = _this.currentGroup = -1;\n if (!isValid) {\n return;\n }\n if (prevColumnIndex >= 0 && nextColumnIndex >= 0) {\n _this.columnReorder(prevColumnIndex, nextColumnIndex, event.originalEvent);\n }\n else if (prevGroupIndex >= 0 && nextGroupIndex >= 0) {\n _this.groupReorder(prevGroupIndex, nextGroupIndex, event.originalEvent);\n }\n else if (prevColumnIndex >= 0 && nextGroupIndex >= 0) {\n _this.columnToGroup(prevColumnIndex, nextGroupIndex, event.originalEvent);\n }\n };\n this.columnReorder = columnReorder;\n this.groupReorder = groupReorder;\n this.columnToGroup = columnToGroup;\n }\n CommonDragLogic.prototype.getColumnIndex = function (event, parent) {\n if (!parent || (parent.parentElement === this.groupPanelDivElement)) {\n return -1;\n }\n var index = getIndex(event, parent);\n if (index === -1) {\n return -1;\n }\n var _loop_1 = function (i) {\n if (parent.parentNode.children[i] === parent) {\n return { value: this_1.columns.findIndex(function (c) { return ((c.index === index) && (c.depth === i)); }) };\n }\n };\n var this_1 = this;\n for (var i = 0; i < parent.parentNode.children.length; i++) {\n var state_1 = _loop_1(i);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n return -1;\n };\n CommonDragLogic.prototype.getGroupIndex = function (event) {\n return getIndex(event, this.groupPanelDivElement);\n };\n CommonDragLogic.prototype.isValid = function () {\n if (this.startGroup >= 0) {\n // group can be moved into group only\n return this.currentGroup >= 0 && this.currentGroup !== this.startGroup;\n }\n if (this.startColumn === -1) {\n return false;\n }\n if (this.currentGroup >= 0) {\n // column to group is possible\n return this.columns[this.startColumn].groupable === true && this.groupable === true;\n }\n // reorder is possible\n return this.reorderable === true &&\n this.currentColumn >= 0 &&\n this.currentColumn !== this.startColumn &&\n this.columns[this.startColumn].reorderable === true &&\n this.columns[this.currentColumn].parentIndex === this.columns[this.startColumn].parentIndex;\n };\n CommonDragLogic.prototype.updateDragElementClue = function (event, element, targetElement, invalidIndex) {\n if (!this.dragElementClue) {\n return;\n }\n var innerText = this.startColumn >= 0 ?\n element.children[this.columns[this.startColumn].index].innerText :\n element.innerText;\n this.dragElementClue.setState({\n visible: true,\n top: (event.pageY + 10),\n left: event.pageX,\n innerText: innerText,\n status: (invalidIndex || !targetElement) ? 'k-i-cancel' : 'k-i-add'\n });\n };\n CommonDragLogic.prototype.updateDropElementClue = function (event, element, targetElement, invalidIndex) {\n if (!this.dropElementClue) {\n return;\n }\n if (invalidIndex || !targetElement) {\n this.dropElementClue.setState({ visible: false });\n return;\n }\n var rect = targetElement.getBoundingClientRect();\n var left = rect.left + event.pageX - event.clientX - 6;\n if (this.currentColumn > this.startColumn || this.currentGroup > this.startGroup && this.startGroup !== -1) {\n left += rect.width;\n }\n var top = rect.top + event.pageY - event.clientY;\n this.dropElementClue.setState({\n visible: true,\n top: top,\n left: left,\n height: (this.currentColumn >= 0) ? element.clientHeight : rect.height\n });\n };\n return CommonDragLogic;\n}());\nexport { CommonDragLogic };\n","var __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};\nimport * as React from 'react';\nimport { getNestedValue } from './../utils';\nimport { useInternationalization } from '@progress/kendo-react-intl';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nimport { GRID_COL_INDEX_ATTRIBUTE } from '../constants';\nimport { classNames } from '@progress/kendo-react-common';\nexport var GridCell = function (props) {\n var _a;\n var defaultRendering = null;\n var intl = useInternationalization();\n var navigationAttributes = useTableKeyboardNavigation(props.id);\n if (props.rowType === 'groupFooter') {\n defaultRendering = React.createElement(\"td\", { className: props.className });\n }\n else if (props.field !== undefined && props.rowType !== 'groupHeader') {\n var data = getNestedValue(props.field, props.dataItem);\n var dataAsString = '';\n if (data !== undefined && data !== null) {\n dataAsString = props.format ?\n intl.format(props.format, data) :\n data.toString();\n }\n var className = classNames(props.className, { 'k-state-selected': props.isSelected });\n defaultRendering = (React.createElement(\"td\", __assign({ colSpan: props.colSpan, style: props.style, className: className, role: 'gridcell', \"aria-colindex\": props.ariaColumnIndex, \"aria-selected\": props.isSelected }, (_a = {}, _a[GRID_COL_INDEX_ATTRIBUTE] = props.columnIndex, _a), navigationAttributes), dataAsString));\n }\n return props.render ?\n props.render.call(undefined, defaultRendering, props) :\n defaultRendering;\n};\n","var __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};\nimport { Keys } from '@progress/kendo-react-common';\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nimport * as React from 'react';\n/**\n * @hidden\n */\nexport var GridGroupCell = function (props) {\n var defaultRendering = null;\n var columnIndex = props.columnIndex, level = props.level, columnsCount = props.columnsCount, rowType = props.rowType, dataItem = props.dataItem, field = props.field, onChange = props.onChange, expanded = props.expanded, render = props.render, dataIndex = props.dataIndex, ariaColumnIndex = props.ariaColumnIndex;\n var definedField = field || '';\n var navigationAttributes = useTableKeyboardNavigation(props.id);\n var onKeyDownHandler = React.useCallback(function (event) {\n if (event.isDefaultPrevented()) {\n return;\n }\n if (event.keyCode === Keys.enter && onChange) {\n event.preventDefault();\n onChange({\n dataItem: dataItem,\n dataIndex: dataIndex,\n syntheticEvent: event,\n field: undefined,\n value: !expanded\n });\n }\n }, [expanded, onChange, dataItem, dataIndex]);\n if (columnIndex === undefined || level === undefined || columnIndex < level ||\n columnsCount === undefined || rowType !== 'groupHeader' || dataItem[definedField] === undefined) {\n defaultRendering = (React.createElement(\"td\", { style: props.style, key: 'g' + columnIndex, className: \"k-group-cell\", role: \"presentation\" }));\n }\n else if (columnIndex <= level) {\n defaultRendering = (React.createElement(\"td\", __assign({ style: props.style, key: 'g-colspan', colSpan: columnsCount - columnIndex, role: 'gridcell', \"aria-selected\": false, \"aria-expanded\": expanded, \"aria-colindex\": ariaColumnIndex, onKeyDown: onKeyDownHandler }, navigationAttributes),\n React.createElement(\"p\", { className: \"k-reset\" },\n React.createElement(\"a\", { onClick: function (e) {\n e.preventDefault();\n if (onChange) {\n onChange({\n dataItem: dataItem,\n dataIndex: dataIndex,\n syntheticEvent: e,\n field: undefined,\n value: !expanded\n });\n }\n }, href: \"#\", tabIndex: -1, className: expanded ? 'k-i-collapse k-icon' : 'k-i-expand k-icon' }),\n ((dataItem[definedField] instanceof Date) && dataItem[definedField].toString) ?\n dataItem[definedField].toString() :\n dataItem[definedField])));\n }\n return render ?\n render.call(undefined, defaultRendering, props) :\n defaultRendering;\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\nimport { GRID_ROW_INDEX_ATTRIBUTE } from '../constants';\n/**\n * The component for each of the items in the `data` property which the Grid renders.\n */\nvar GridRow = /** @class */ (function (_super) {\n __extends(GridRow, _super);\n function GridRow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n GridRow.prototype.render = function () {\n var _a;\n var className = classNames({\n 'k-grouping-row': this.props.rowType === 'groupHeader',\n 'k-group-footer': this.props.rowType === 'groupFooter',\n 'k-master-row': this.props.rowType !== 'groupHeader' &&\n this.props.rowType !== 'groupFooter',\n 'k-alt': this.props.rowType !== 'groupHeader' &&\n this.props.rowType !== 'groupFooter' &&\n this.props.isAltRow,\n 'k-state-selected': this.props.isSelected,\n 'k-grid-edit-row': this.props.isInEdit\n });\n var defaultRendering = (React.createElement(\"tr\", __assign({ onClick: this.props.onClick, onDoubleClick: this.props.onDoubleClick, className: className, style: {\n height: this.props.rowHeight ? this.props.rowHeight + 'px' : '',\n visibility: this.props.isHidden ? 'hidden' : ''\n }, role: \"row\", \"aria-rowindex\": this.props.ariaRowIndex }, (_a = {}, _a[GRID_ROW_INDEX_ATTRIBUTE] = this.props.rowType === 'data' ? this.props.dataIndex : undefined, _a)), this.props.children));\n return this.props.render ?\n this.props.render.call(undefined, defaultRendering, this.props) :\n defaultRendering;\n };\n return GridRow;\n}(React.Component));\nexport { GridRow };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { guid } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar GridHeaderSelectionCell = /** @class */ (function (_super) {\n __extends(GridHeaderSelectionCell, _super);\n function GridHeaderSelectionCell() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._inputId = guid();\n return _this;\n }\n GridHeaderSelectionCell.prototype.render = function () {\n var _this = this;\n var defaultRendering = [\n (React.createElement(\"input\", { key: 0, checked: this.props.selectionValue, id: this._inputId, type: \"checkbox\", className: \"k-checkbox\", onChange: function (e) {\n return _this.props.selectionChange({\n field: _this.props.field,\n syntheticEvent: e\n });\n } })),\n (React.createElement(\"label\", { key: 1, className: \"k-checkbox-label\", htmlFor: this._inputId }))\n ];\n return this.props.render ?\n this.props.render.call(undefined, defaultRendering, this.props) :\n defaultRendering;\n };\n return GridHeaderSelectionCell;\n}(React.Component));\nexport { GridHeaderSelectionCell };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService as intl } from '@progress/kendo-react-intl';\nimport { messages, noRecords } from './messages';\n/* eslint-disable max-len */\n/**\n * Represents the GridNoRecords component. The component is rendered when the `data` property of the Grid is empty or `null`.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return (\n * \n * \n * There is no data available\n * \n * \n * \n * \n * );\n * }\n * }\n * ReactDOM.render(\n * ,\n * document.querySelector('my-app')\n * );\n * ```\n */\n// tslint:enable:max-line-length\nvar GridNoRecords = /** @class */ (function (_super) {\n __extends(GridNoRecords, _super);\n function GridNoRecords() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n GridNoRecords.prototype.render = function () {\n return this.props.children || intl(this).toLanguageString(noRecords, messages[noRecords]);\n };\n /**\n * @hidden\n */\n GridNoRecords.displayName = 'KendoReactGridNoRecords';\n return GridNoRecords;\n}(React.Component));\nexport { GridNoRecords };\nregisterForLocalization(GridNoRecords);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { footerColumns } from './../utils';\n/**\n * @hidden\n */\nvar FooterRow = /** @class */ (function (_super) {\n __extends(FooterRow, _super);\n function FooterRow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._element = null;\n _this.renderCell = function (column, index) {\n var tdProps = {\n colSpan: column.colSpan !== 1 ? column.colSpan : undefined,\n style: column.left !== undefined\n ? !_this.props.isRtl\n ? { left: column.left, right: column.right }\n : { left: column.right, right: column.left }\n : {},\n className: column.locked && column.left !== undefined ? 'k-grid-footer-sticky' : ''\n };\n var cellProps = __assign({ field: column.field, ariaColumnIndex: column.ariaColumnIndex }, tdProps);\n return (column.footerCell && React.createElement(column.footerCell, __assign({}, cellProps, { key: index }))) || (React.createElement(\"td\", __assign({ key: index }, tdProps, { role: 'columnfooter', \"aria-selected\": false, \"aria-colindex\": column.ariaColumnIndex })));\n };\n return _this;\n }\n Object.defineProperty(FooterRow.prototype, \"element\", {\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n FooterRow.prototype.render = function () {\n return React.createElement(\"tr\", { role: \"row\", \"aria-rowindex\": this.props.ariaRowIndex }, footerColumns(this.props.columns).map(this.renderCell));\n };\n return FooterRow;\n}(React.Component));\nexport { FooterRow };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-grid',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584940,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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};\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nimport * as React from 'react';\n/** @hidden */\nexport var GridDetailCell = function (props) {\n var colSpan = props.colSpan, ariaColIndex = props.ariaColIndex, dataItem = props.dataItem, dataIndex = props.dataIndex, id = props.id;\n var navigationAttributes = useTableKeyboardNavigation(id);\n return (React.createElement(\"td\", __assign({ className: \"k-detail-cell\", colSpan: colSpan, \"aria-colindex\": ariaColIndex, role: 'gridcell' }, navigationAttributes),\n React.createElement(props.detail, { dataItem: dataItem, dataIndex: dataIndex })));\n};\n","var __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};\nimport { useTableKeyboardNavigation } from '@progress/kendo-react-data-tools';\nimport * as React from 'react';\n/** @hidden */\nexport var GridDetailHierarchyCell = function (props) {\n var navigationAttributes = useTableKeyboardNavigation(props.id);\n return (React.createElement(\"td\", __assign({ className: \"k-hierarchy-cell\" }, navigationAttributes)));\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { dispatchEvent, classNames, getter, guid, setScrollbarWidth, canUseDOM } from '@progress/kendo-react-common';\nimport { tableColumnsVirtualization, Pager, mapColumns, isRtl, tableKeyboardNavigation, TableKeyboardNavigationContext, tableKeyboardNavigationScopeAttributes, tableKeyboardNavigationTools as navigationTools, tableKeyboardNavigationBodyAttributes, getSelectionOptions, TableSelection, DropClue, DragClue } from '@progress/kendo-react-data-tools';\nimport { GridSelectionCell } from './cells/GridSelectionCell';\nimport { GridHierarchyCell } from './cells/GridHierarchyCell';\nimport { GridEditCell } from './cells/GridEditCell';\nimport { Header } from './header/Header';\nimport { HeaderRow } from './header/HeaderRow';\nimport { FilterRow } from './header/FilterRow';\nimport { GroupPanel } from './header/GroupPanel';\nimport { Footer } from './footer/Footer';\nimport { VirtualScroll } from './VirtualScroll';\nimport { ColumnResize } from './drag/ColumnResize';\nimport { CommonDragLogic } from './drag/CommonDragLogic';\nimport { getNestedValue, flatData, readColumns, autoGenerateColumns, sanitizeColumns } from './utils/index';\nimport { GridCell } from './cells/GridCell';\nimport { GridGroupCell } from './cells/GridGroupCell';\nimport { GridRow } from './rows/GridRow';\nimport { GridHeaderSelectionCell } from './header/GridHeaderSelectionCell';\nimport { GridNoRecords } from './GridNoRecords';\nimport { operators } from './filterCommon';\nimport { FooterRow } from './footer/FooterRow';\nimport { normalize } from './paging/GridPagerSettings';\nimport { pagerMessagesMap } from './messages';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nimport { GridDetailCell } from './cells/GridDetailCell';\nimport { GridDetailHierarchyCell } from './cells/GridDetailHierarchyCell';\n/**\n * Represents the [KendoReact Grid component]({% slug overview_grid %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * data: [\n * { 'foo': 'A1', 'bar': 'B1' },\n * { 'foo': 'A2', 'bar': 'B2' },\n * { 'foo': 'A3', 'bar': 'B2' }\n * ]\n * };\n * }\n * render() {\n * return (\n * \n * \n * \n * \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar Grid = /** @class */ (function (_super) {\n __extends(Grid, _super);\n function Grid(props) {\n var _this = _super.call(this, props) || this;\n _this._columns = [];\n _this._columnsMap = [[]];\n _this.contextStateRef = { current: undefined };\n _this.navigationStateRef = { current: undefined };\n _this.wrapperScrollTop = 0;\n _this.element = null;\n _this.tableElement = null;\n _this._header = null;\n _this._footer = null;\n _this.forceUpdateTimeout = undefined;\n _this.isRtl = false;\n _this._gridId = guid();\n /**\n * Method to allow the scroll to be set to a specific row index.\n *\n * @param options - Object, containing the rowIndex to which is going to be scrolled.\n */\n _this.scrollIntoView = function (options) {\n if (!_this.vs.container || _this.props.scrollable === 'none') {\n return;\n }\n var rowIndex = options.rowIndex;\n if (_this.props.scrollable === 'virtual') {\n _this.vs.askedSkip = rowIndex;\n _this.vs.container.scroll(0, Math.round(_this.vs.askedSkip / _this.vs.total * _this.vs.container.scrollHeight));\n }\n else if (_this.element) {\n var selectedRow = rowIndex < 1\n ? _this.element.querySelector(\"tbody > tr:nth-child(\" + 1 + \")\")\n : _this.element.querySelector(\"tbody > tr:nth-child(\" + rowIndex + \")\");\n if (selectedRow) {\n selectedRow.scrollIntoView(true);\n }\n }\n };\n /**\n * Method to fit columns according to their content.\n *\n * @param columnIds - Array of column ids to be fitted.\n */\n _this.fitColumns = function (columnIds) {\n _this.columnResize.dblClickHandler(null, columnIds);\n };\n _this.scrollHandler = function (event) {\n if (event.target !== event.currentTarget) {\n return;\n }\n clearTimeout(_this.forceUpdateTimeout);\n var scrollLeft = event.currentTarget.scrollLeft;\n var scrollTop = event.currentTarget.scrollTop;\n if (_this.props.columnVirtualization && (!_this.vs.scrollableVirtual || scrollTop === _this.wrapperScrollTop)) {\n _this.forceUpdateTimeout = window.setTimeout(function () { _this.forceUpdate(); }, 0);\n }\n if (_this._header) {\n _this._header.setScrollLeft(scrollLeft);\n }\n if (_this._footer) {\n _this._footer.setScrollLeft(scrollLeft);\n }\n if (_this.vs) {\n _this.vs.scrollHandler(event);\n }\n dispatchEvent(_this.props.onScroll, event, _this, undefined);\n _this.wrapperScrollTop = scrollTop;\n };\n _this.onKeyDown = function (event) {\n tableKeyboardNavigation.onKeyDown(event, {\n contextStateRef: _this.contextStateRef,\n navigationStateRef: _this.navigationStateRef,\n onNavigationAction: _this.onNavigationAction\n });\n if (_this.props.onKeyDown) {\n var _a = getSelectionOptions(_this.props.selectable), mode = _a.mode, cell = _a.cell;\n _this.props.onKeyDown.call(undefined, __assign({ dataItems: _this.getLeafDataItems(), mode: mode,\n cell: cell, componentId: _this._gridId, selectedField: _this.props.selectedField }, _this.getArguments(event)));\n }\n };\n _this.onFocus = function (event) {\n tableKeyboardNavigation.onFocus(event, {\n contextStateRef: _this.contextStateRef\n });\n };\n _this.onNavigationAction = function (options) {\n if (_this.props.onNavigationAction) {\n _this.props.onNavigationAction.call(undefined, __assign({ focusElement: options.focusElement }, _this.getArguments(options.event)));\n }\n };\n _this.rowClick = function (e, item) {\n if (_this.props.onRowClick && e.target.nodeName === 'TD') {\n _this.props.onRowClick.call(undefined, __assign({ dataItem: item.dataItem }, _this.getArguments(e)));\n }\n };\n _this.rowDblClick = function (e, item) {\n if (_this.props.onRowDoubleClick && e.target.nodeName === 'TD') {\n _this.props.onRowDoubleClick.call(undefined, __assign({ dataItem: item.dataItem }, _this.getArguments(e)));\n }\n };\n _this.itemChange = function (event) {\n var itemChange = _this.props.onItemChange;\n if (event.field === _this.props.expandField || _this.props.group && event.field === undefined) {\n var expandChange = _this.props.onExpandChange;\n if (expandChange) {\n expandChange.call(undefined, __assign({}, _this.getArguments(event.syntheticEvent), { dataItem: event.dataItem, dataIndex: event.dataIndex, value: event.value }));\n }\n return;\n }\n if (itemChange) {\n itemChange.call(undefined, __assign({}, _this.getArguments(event.syntheticEvent), { dataItem: event.dataItem, field: event.field, value: event.value }));\n }\n };\n _this.onHeaderSelectionChange = function (event) {\n if (_this.props.onHeaderSelectionChange) {\n _this.props.onHeaderSelectionChange.call(undefined, {\n field: event.field,\n nativeEvent: event.syntheticEvent && event.syntheticEvent.nativeEvent,\n syntheticEvent: event.syntheticEvent,\n target: _this,\n dataItems: _this.getLeafDataItems(),\n selectedField: _this.props.selectedField\n });\n }\n };\n _this.selectionRelease = function (event) {\n if (_this.props.onSelectionChange) {\n var selectionEvent = __assign({ syntheticEvent: undefined, target: _this, selectedField: _this.props.selectedField || '', componentId: _this._gridId, dataItems: _this.getLeafDataItems(), dataItem: null }, event);\n _this.props.onSelectionChange.call(undefined, selectionEvent);\n }\n };\n _this.pageChange = function (page, syntheticEvent) {\n _this.raiseDataEvent(_this.props.onPageChange, { page: page }, { skip: page.skip, take: page.take }, syntheticEvent);\n };\n _this.pagerPageChange = function (event) {\n _this.pageChange({ skip: event.skip, take: event.take }, event.syntheticEvent);\n };\n _this.sortChange = function (sort, syntheticEvent) {\n _this.raiseDataEvent(_this.props.onSortChange, { sort: sort }, { sort: sort }, syntheticEvent);\n };\n _this.filterChange = function (filter, syntheticEvent) {\n _this.raiseDataEvent(_this.props.onFilterChange, { filter: filter }, { filter: filter, skip: 0 }, syntheticEvent);\n };\n _this.groupChange = function (groups, event) {\n var syntheticEvent = event.nativeEvent ?\n event : { nativeEvent: event.nativeEvent || event.originalEvent };\n _this.raiseDataEvent(_this.props.onGroupChange, { group: groups }, { group: groups, skip: 0 }, syntheticEvent);\n };\n _this.onResize = function (index, newWidth, oldWidth, nativeEvent, end, targetId) {\n _this.resetTableWidth();\n if (_this.props.onColumnResize) {\n _this.props.onColumnResize.call(undefined, {\n columns: _this.columns,\n nativeEvent: nativeEvent,\n targetColumnId: targetId,\n index: index,\n newWidth: newWidth,\n oldWidth: oldWidth,\n end: end,\n target: _this\n });\n }\n };\n _this.resolveTitle = function (field) {\n var column = _this._columns.find(function (c) { return c.field === field; });\n var title = column && (column.title || column.field);\n return title === undefined ? field : title;\n };\n _this.getLeafDataItems = function () {\n return _this._data.filter(function (item) { return item.rowType === 'data'; }).map(function (item) { return item.dataItem; });\n };\n validatePackage(packageMetadata);\n var groupable = _this.props.groupable === true ||\n (typeof _this.props.groupable === 'object') && _this.props.groupable.enabled !== false;\n _this.vs = new VirtualScroll(groupable || props.rowHeight === undefined || props.rowHeight === 0);\n _this.dragLogic = new CommonDragLogic(_this.columnReorder.bind(_this), _this.groupReorder.bind(_this), _this.columnToGroup.bind(_this));\n _this.columnResize = new ColumnResize(_this.onResize);\n tableKeyboardNavigation.onConstructor({\n navigatable: Boolean(props.navigatable),\n contextStateRef: _this.contextStateRef,\n navigationStateRef: _this.navigationStateRef,\n idPrefix: _this._gridId\n });\n return _this;\n }\n Object.defineProperty(Grid.prototype, \"columns\", {\n /* eslint-disable max-len */\n /**\n * A getter of the current columns. Gets the current column width or current columns, or any other [`GridColumnProps`]({% slug api_grid_gridcolumnprops %}) for each defined column. Can be used on each Grid instance. To obtain the instance of the rendered Grid, use the `ref` callback. The following example demonstrates how to reorder the columns by dragging their handlers and check the properties afterwards. You can check the result in the browser console.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * data: [\n * { 'foo': 'A1', 'bar': 'B1' },\n * { 'foo': 'A2', 'bar': 'B2' },\n * { 'foo': 'A3', 'bar': 'B2' }\n * ]\n * };\n * this.grid = null;\n * }\n * render() {\n * return (\n *
    \n * { this.grid = g; }}\n * >\n * \n * \n * \n * \n *
    \n * );\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\n // tslint:enable:max-line-length\n get: function () {\n var shuffledColumns = this._columns.filter(function (q) { return q.declarationIndex >= 0 && q.parentIndex === -1; });\n return sanitizeColumns(shuffledColumns);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Grid.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n Grid.prototype.componentDidMount = function () {\n setScrollbarWidth();\n var rtl = isRtl(this.element);\n this.isRtl = rtl;\n tableKeyboardNavigation.onComponentDidMount({\n scope: this.element || undefined,\n contextStateRef: this.contextStateRef,\n navigationStateRef: this.navigationStateRef\n });\n if (this.isRtl) {\n this.forceUpdate();\n }\n };\n /**\n * @hidden\n */\n Grid.prototype.getSnapshotBeforeUpdate = function () {\n tableKeyboardNavigation.onGetSnapshotBeforeUpdate({\n document: this.document,\n contextStateRef: this.contextStateRef,\n navigationStateRef: this.navigationStateRef\n });\n return null;\n };\n /**\n * @hidden\n */\n Grid.prototype.componentDidUpdate = function () {\n setScrollbarWidth();\n tableKeyboardNavigation.onComponentDidUpdate({\n scope: this.element || undefined,\n contextStateRef: this.contextStateRef,\n navigationStateRef: this.navigationStateRef\n });\n };\n /**\n * @hidden\n */\n Grid.prototype.componentWillUnmount = function () {\n clearTimeout(this.forceUpdateTimeout);\n this.columnResize.columns = [];\n this.dragLogic.columns = [];\n this._columns = [];\n };\n /**\n * @hidden\n */\n Grid.prototype.render = function () {\n var _this = this;\n var total = this.props.total || 0;\n var idPrefix = navigationTools.getIdPrefix(this.navigationStateRef);\n var propsData = [];\n if (Array.isArray(this.props.data)) {\n propsData = this.props.data;\n total = total || this.props.data.length;\n }\n else if (this.props.data) {\n propsData = this.props.data.data;\n total = total || this.props.data.total;\n }\n var groupable = this.props.groupable === true ||\n (typeof this.props.groupable === 'object') && this.props.groupable.enabled !== false;\n this.columnResize.resizable = this.props.resizable || false;\n this.dragLogic.reorderable = this.props.reorderable || false;\n this.dragLogic.groupable = groupable;\n var tableUserSelect = this.props.selectable && this.props.selectable.drag ? 'none' : undefined;\n if (total !== this.vs.total) {\n this.vs.reset();\n this.vs = new VirtualScroll(groupable || this.props.rowHeight === undefined || this.props.rowHeight === 0);\n this.vs.table = this.tableElement;\n }\n this.vs.fixedScroll = this.props.fixedScroll || false;\n this.vs.PageChange = this.pageChange;\n this.vs.realSkip = this.props.skip || 0;\n this.vs.pageSize = (this.props.take !== undefined ? this.props.take : this.props.pageSize) || 0;\n this.vs.scrollableVirtual = (this.props.scrollable === 'virtual');\n this.vs.total = total;\n this.vs.propsSkip = (this.props.skip || 0) + (this.props.scrollable === 'virtual' ?\n this.vs.topCacheCount + (this.vs.attendedSkip - (this.props.skip || 0)) : 0);\n if (this.props.rowHeight !== undefined && this.props.rowHeight > 0 && !groupable) {\n this.vs.containerHeight = Math.min(1533915, this.props.rowHeight * (total || 0));\n }\n else {\n this.vs.containerHeight = 1533915;\n }\n var groupingFooter = (typeof this.props.groupable === 'object') && this.props.groupable.footer || 'none';\n this._data = [];\n var resolvedGroupsCount = flatData(this._data, propsData, groupingFooter, { index: this.props.skip || 0 }, this.props.group !== undefined, this.props.expandField);\n var children = React.Children.toArray(this.props.children);\n this.initColumns(children.filter(function (child) { return child &&\n child.type.displayName === 'KendoReactGridColumn'; }), resolvedGroupsCount);\n var toolbar = children.filter(function (child) { return child &&\n child.type.displayName === 'KendoReactGridToolbar'; });\n var noRecords = children.filter(function (child) { return child &&\n child.type.displayName === 'KendoReactGridNoRecords'; });\n var leafColumns = this._columns.filter(function (c) { return c.children.length === 0; });\n var groupingPanel = groupable && (React.createElement(GroupPanel, { group: this.props.group || [], groupChange: this.groupChange, pressHandler: this.dragLogic.pressHandler, dragHandler: this.dragLogic.dragHandler, releaseHandler: this.dragLogic.releaseHandler, refCallback: this.dragLogic.refGroupPanelDiv, resolveTitle: this.resolveTitle }));\n var header = (React.createElement(Header, { columnResize: this.columnResize, staticHeaders: this.props.scrollable !== 'none', scrollableDataElement: function () { return _this.vs.container; }, draggable: this.props.reorderable || groupable, ref: function (h) {\n _this._header = h;\n }, headerRow: React.createElement(HeaderRow, { sort: this.props.sort, sortable: this.props.sortable, sortChange: this.sortChange, group: this.props.group || [], groupable: groupable, groupChange: this.groupChange, filter: this.props.filter, filterable: this.props.filterable, filterOperators: this.props.filterOperators || operators, filterChange: this.filterChange, columnMenu: this.props.columnMenu, selectionChange: this.onHeaderSelectionChange, columns: this._columns, columnResize: this.columnResize, pressHandler: this.dragLogic.pressHandler, dragHandler: this.dragLogic.dragHandler, releaseHandler: this.dragLogic.releaseHandler, columnsMap: this._columnsMap, cellRender: this.props.headerCellRender, isRtl: this.isRtl }), filterRow: this.props.filterable && React.createElement(FilterRow, { columns: this._columns, filter: this.props.filter, filterOperators: this.props.filterOperators || operators, filterChange: this.filterChange, sort: this.props.sort, cellRender: this.props.filterCellRender, isRtl: this.isRtl, ariaRowIndex: this._columnsMap.length + 1 }) || undefined, cols: leafColumns.map(function (column, index) { return (React.createElement(\"col\", { key: index.toString(), width: column.width !== undefined ?\n Math.floor(parseFloat(column.width.toString())) + 'px' : undefined })); }) }));\n var scrollLeft = this.vs && this.vs.container && this.vs.container.scrollLeft || 0;\n var tableWidth = parseFloat(((this.props.style || {}).width || '').toString());\n var _a = tableColumnsVirtualization({\n enabled: this.props.columnVirtualization,\n columns: leafColumns,\n tableViewPortWidth: tableWidth,\n scrollLeft: scrollLeft\n }), colSpans = _a.colSpans, isColHidden = _a.hiddenColumns;\n var dataRow = function (item, rowId, rowDataIndex) {\n var isInEdit = false;\n var selectedValue = _this.props.selectedField ? getNestedValue(_this.props.selectedField, item.dataItem) : undefined;\n return {\n row: leafColumns.map(function (column, columnIndex) {\n if (isColHidden[columnIndex]) {\n return null;\n }\n var className = \"\" + (column.className ? column.className + ' ' : '')\n + (\"\" + (column.locked ? 'k-grid-content-sticky' : ''));\n var style = column.left !== undefined\n ? !_this.isRtl\n ? { left: column.left, right: column.right }\n : { left: column.right, right: column.left }\n : {};\n var cellProps = {\n id: navigationTools.generateNavigatableId(rowId + \"-\" + String(columnIndex), idPrefix),\n colSpan: colSpans[columnIndex],\n dataItem: item.dataItem,\n field: column.field,\n editor: column.editor,\n format: column.format,\n className: className,\n render: _this.props.cellRender,\n onChange: _this.itemChange,\n selectionChange: (_this.props.onSelectionChange) ?\n (function (e) { _this.selectionChange({ event: e, dataItem: item.dataItem, dataIndex: rowDataIndex, columnIndex: columnIndex }); }) :\n undefined,\n columnIndex: columnIndex,\n columnsCount: leafColumns.length,\n rowType: item.rowType,\n level: item.level,\n expanded: item.expanded,\n dataIndex: item.dataIndex,\n style: style,\n ariaColumnIndex: column.ariaColumnIndex,\n isSelected: Array.isArray(selectedValue) && selectedValue.indexOf(columnIndex) > -1\n };\n var currentColumnIsInEdit = false;\n if (column.editable && _this.props.editField) {\n var inEdit = getNestedValue(_this.props.editField, item.dataItem);\n if (inEdit === true || inEdit === column.field) {\n isInEdit = true;\n currentColumnIsInEdit = true;\n }\n }\n if (column.cell) {\n return React.createElement(column.cell, __assign({ key: columnIndex }, cellProps));\n }\n return currentColumnIsInEdit\n ? React.createElement(GridEditCell, __assign({ key: columnIndex }, cellProps))\n : React.createElement(GridCell, __assign({ key: columnIndex }, cellProps));\n }),\n isInEdit: isInEdit,\n isSelected: typeof selectedValue === 'boolean' && selectedValue\n };\n };\n var hiddenRows = 0;\n if (this.props.scrollable === 'virtual') {\n for (var i = 0; i < this.vs.topCacheCount + this.vs.attendedSkip - (this.props.skip || 0); i++) {\n var item = this._data.shift();\n if (item) {\n this._data.push(item);\n hiddenRows++;\n if (item.rowType === 'groupHeader') {\n i--;\n }\n }\n else {\n break;\n }\n }\n }\n var hidden = function (index) {\n return (index >= _this._data.length - hiddenRows);\n };\n var absoluteDataIndex = this.vs.propsSkip || 0;\n var body = [];\n var rowIndexStart = this._columnsMap.length + (this.props.filterable ? 1 : 0) + 1;\n var currentAriaRowIndex;\n if (this._data.length) {\n var dataIndex_1 = -1;\n var detailRowCount_1 = 0;\n this._data.forEach(function (item, rowIndex) {\n if (item.rowType === 'data') {\n absoluteDataIndex++;\n dataIndex_1++;\n }\n var isAlt = absoluteDataIndex % 2 === 0;\n var dataItemKey = _this.props.dataItemKey && getter(_this.props.dataItemKey)(item.dataItem);\n var absoluteIndex = rowIndex + (_this.vs.propsSkip || 0);\n var rowId = dataItemKey ? dataItemKey : 'ai' + absoluteIndex;\n var detailRowId = rowId + '_1';\n var gridRow = dataRow(item, rowId, dataIndex_1);\n currentAriaRowIndex = absoluteIndex + rowIndexStart + detailRowCount_1;\n body.push((React.createElement(GridRow, { key: rowId, dataItem: item.dataItem, isAltRow: isAlt, isInEdit: gridRow.isInEdit, rowType: item.rowType, isHidden: hidden(rowIndex), onClick: function (e) { return _this.rowClick(e, item); }, onDoubleClick: function (e) { return _this.rowDblClick(e, item); }, selectedField: _this.props.selectedField, rowHeight: _this.props.rowHeight, render: _this.props.rowRender, ariaRowIndex: currentAriaRowIndex, dataIndex: dataIndex_1, isSelected: gridRow.isSelected }, gridRow.row)));\n if (_this.props.detail && item.rowType === 'data' && item.expanded) {\n var detailColspan = (leafColumns.length\n - (_this.props.expandField ? 1 : 0)\n - (_this.props.group ? _this.props.group.length : 0)) || 1;\n detailRowCount_1++;\n currentAriaRowIndex = absoluteIndex + rowIndexStart + detailRowCount_1;\n body.push((React.createElement(\"tr\", { key: detailRowId, className: isAlt ? 'k-detail-row k-alt' : 'k-detail-row', style: { visibility: hidden(rowIndex) ? 'hidden' : '' }, role: \"row\", \"aria-rowindex\": currentAriaRowIndex },\n _this.props.group && _this.props.group.map(function (group, idx) {\n return (React.createElement(GridGroupCell, { id: '', dataIndex: item.dataIndex, field: group.field, dataItem: item.dataItem, key: idx, style: {}, ariaColumnIndex: 1 + idx, isSelected: false }));\n }),\n _this.props.expandField &&\n React.createElement(GridDetailHierarchyCell, { id: navigationTools.generateNavigatableId(detailRowId + \"-dhcell\", idPrefix) }),\n React.createElement(GridDetailCell, { dataItem: item.dataItem, dataIndex: item.dataIndex, colSpan: detailColspan, ariaColIndex: 2 + (_this.props.group ? _this.props.group.length : 0), detail: _this.props.detail, id: navigationTools.generateNavigatableId(detailRowId + \"-dcell\", idPrefix) }))));\n }\n });\n }\n else {\n body.push((React.createElement(\"tr\", { key: \"no-records\", className: \"k-grid-norecords\", \"aria-rowindex\": rowIndexStart },\n React.createElement(\"td\", { colSpan: leafColumns.length }, noRecords.length ? noRecords : React.createElement(GridNoRecords, null)))));\n }\n var pagerProps = __assign({ className: 'k-grid-pager', onPageChange: this.pagerPageChange, total: total, skip: this.vs.propsSkip || 0, take: (this.props.take !== undefined ? this.props.take : this.props.pageSize) || 10, messagesMap: pagerMessagesMap }, (normalize(this.props.pageable || {})));\n var pager = this.props.pager ? React.createElement(this.props.pager, __assign({}, pagerProps)) : React.createElement(Pager, __assign({}, pagerProps));\n var sorted = function (field) {\n return _this.props.sort && _this.props.sort.filter(function (descriptor) { return descriptor.field === field; }).length > 0;\n };\n var footer = this._columns.some(function (c) { return Boolean(c.footerCell); }) ? (React.createElement(Footer, { columnResize: this.columnResize, staticHeaders: this.props.scrollable !== 'none', ref: function (f) { return _this._footer = f; }, row: React.createElement(FooterRow, { columns: this._columns, isRtl: this.isRtl, ariaRowIndex: currentAriaRowIndex + 1 }), cols: leafColumns.map(function (column, index) { return (React.createElement(\"col\", { key: index.toString(), width: column.width !== undefined ?\n Math.floor(parseFloat(column.width.toString())) + 'px' : undefined })); }) })) : null;\n var colGroups = (React.createElement(\"colgroup\", { ref: function (c) {\n _this.columnResize.colGroupMain = c;\n }, role: \"presentation\" }, leafColumns.map(function (column, index) { return (React.createElement(\"col\", { key: index.toString(), className: sorted(column.field) ? 'k-sorted' : undefined, width: column.width !== undefined ?\n Math.floor(parseFloat(column.width.toString())) + 'px' : undefined })); })));\n var enableDragClues = this.dragLogic.reorderable || this.dragLogic.groupable;\n if (this.props.scrollable === 'none') {\n return (React.createElement(TableKeyboardNavigationContext.Provider, { value: this.contextStateRef.current },\n React.createElement(\"div\", __assign({ style: this.props.style, className: classNames('k-widget k-grid', this.props.className), \"aria-colcount\": leafColumns.length, \"aria-rowcount\": total, ref: function (el) { _this.element = el; }, onKeyDown: this.onKeyDown, onFocus: this.onFocus }, tableKeyboardNavigationScopeAttributes),\n toolbar,\n groupingPanel,\n React.createElement(TableSelection, { selectable: this.props.selectable, onRelease: this.selectionRelease, childRef: function (table) {\n _this.vs.table = table;\n _this.tableElement = table;\n _this.resetTableWidth();\n } },\n React.createElement(\"table\", { style: { userSelect: tableUserSelect } },\n colGroups,\n header,\n React.createElement(\"tbody\", __assign({}, tableKeyboardNavigationBodyAttributes), body),\n footer)),\n this.props.pageable && pager,\n enableDragClues && (React.createElement(React.Fragment, null,\n React.createElement(DropClue, { ref: this.dragLogic.refDropElementClue }),\n React.createElement(DragClue, { ref: this.dragLogic.refDragElementClue }))))));\n }\n var wrapperStyle = this.props.style || {};\n if (this.props.scrollable === 'virtual') {\n // Set the default height for vs if not existing.\n if (!wrapperStyle.height) {\n wrapperStyle = Object.assign({}, wrapperStyle, { height: '450px' });\n }\n }\n return (React.createElement(TableKeyboardNavigationContext.Provider, { value: this.contextStateRef.current },\n React.createElement(\"div\", __assign({ style: wrapperStyle, className: classNames('k-widget k-grid', {\n 'k-grid-virtual': this.props.scrollable === 'virtual'\n }, this.props.className), ref: function (el) {\n _this.element = el;\n _this.resetTableWidth();\n }, role: \"grid\", \"aria-colcount\": leafColumns.length, \"aria-rowcount\": total, onKeyDown: this.onKeyDown, onFocus: this.onFocus }, tableKeyboardNavigationScopeAttributes),\n toolbar,\n groupingPanel,\n header,\n React.createElement(\"div\", { className: \"k-grid-container\", role: \"presentation\" },\n React.createElement(\"div\", { ref: function (container) {\n _this.vs.container = container;\n }, className: \"k-grid-content k-virtual-content\", onScroll: this.scrollHandler, role: \"presentation\" },\n React.createElement(\"div\", { style: { 'position': 'relative' }, role: \"presentation\" },\n React.createElement(TableSelection, { selectable: this.props.selectable, onRelease: this.selectionRelease, childRef: function (table) {\n _this.vs.table = table;\n _this.tableElement = table;\n } },\n React.createElement(\"table\", { className: 'k-grid-table', role: \"presentation\", style: { userSelect: tableUserSelect } },\n colGroups,\n React.createElement(\"tbody\", __assign({ ref: function (tableBody) {\n _this.vs.tableBody = tableBody;\n }, role: \"presentation\" }, tableKeyboardNavigationBodyAttributes), body)))),\n React.createElement(\"div\", { className: \"k-height-container\", role: \"presentation\" },\n React.createElement(\"div\", { style: this.props.scrollable === 'virtual' ?\n { 'height': (this.vs.containerHeight) + 'px' } : {} })))),\n footer,\n this.props.pageable && pager,\n enableDragClues && (React.createElement(React.Fragment, null,\n React.createElement(DropClue, { ref: this.dragLogic.refDropElementClue }),\n React.createElement(DragClue, { ref: this.dragLogic.refDragElementClue }))))));\n };\n Grid.prototype.selectionChange = function (options) {\n if (this.props.onSelectionChange) {\n var event_1 = options.event, dataItem = options.dataItem, dataIndex = options.dataIndex, columnIndex = options.columnIndex;\n var _a = getSelectionOptions(this.props.selectable), mode = _a.mode, cell = _a.cell;\n var selectionEvent = __assign({}, this.getArguments(event_1.syntheticEvent), { dataItem: dataItem, startColIndex: columnIndex, endColIndex: columnIndex, startRowIndex: dataIndex, endRowIndex: dataIndex, dataItems: this.getLeafDataItems(), altKey: false, ctrlKey: false, shiftKey: false, metaKey: false, mode: mode,\n cell: cell, isDrag: false, componentId: this._gridId, selectedField: this.props.selectedField || '' });\n this.props.onSelectionChange.call(undefined, selectionEvent);\n }\n };\n Grid.prototype.raiseDataEvent = function (handler, data, moreData, syntheticEvent) {\n var dataStateChange = this.props.onDataStateChange;\n if (handler) {\n handler.call(undefined, __assign({}, this.getArguments(syntheticEvent), data));\n }\n else if (dataStateChange) {\n dataStateChange.call(undefined, __assign({}, this.getArguments(syntheticEvent), { dataState: __assign({}, this.getDataState(), moreData) }));\n }\n };\n Grid.prototype.columnReorder = function (prev, next, nativeEvent) {\n var _this = this;\n var _a;\n var depth = this._columns[prev].depth;\n var end = function (index) {\n do {\n index++;\n } while (index < _this._columns.length && _this._columns[index].depth > depth);\n return index;\n };\n var spliced = this._columns.splice(prev, end(prev) - prev);\n (_a = this._columns).splice.apply(_a, [prev < next ? end(next - spliced.length) : next, 0].concat(spliced));\n this._columns.filter(function (q) { return q.declarationIndex >= 0; }).forEach(function (c, i) { return c.orderIndex = i; });\n var eventColumnProps = this.columns;\n this.forceUpdate();\n if (this.props.onColumnReorder) {\n this.props.onColumnReorder.call(undefined, {\n target: this,\n columns: eventColumnProps,\n nativeEvent: nativeEvent\n });\n }\n };\n Grid.prototype.groupReorder = function (prevIndex, nextIndex, nativeEvent) {\n if (this.props.group === undefined) {\n return;\n }\n var group = this.props.group.slice();\n group.splice.apply(group, [nextIndex, 0].concat(group.splice(prevIndex, 1)));\n this.groupChange(group, nativeEvent);\n };\n Grid.prototype.columnToGroup = function (columnIndex, groupIndex, nativeEvent) {\n var field = this._columns[columnIndex].field;\n if (!field) {\n return;\n }\n var group = (this.props.group || []).slice();\n group.splice(groupIndex, 0, { field: field });\n this.groupChange(group, nativeEvent);\n };\n Grid.prototype.resetTableWidth = function () {\n var totalWidth = 0;\n if (!this.columnResize.colGroupMain) {\n return;\n }\n var colElements = this.columnResize.colGroupMain.children;\n for (var i = 0; i < colElements.length; i++) {\n var width = colElements[i].width;\n if (!width) {\n return;\n }\n totalWidth += parseFloat(width.toString());\n }\n totalWidth = Math.round(totalWidth);\n if (this._header) {\n this._header.setWidth(totalWidth);\n }\n if (this._footer) {\n this._footer.setWidth(totalWidth);\n }\n if (this.vs.table) {\n this.vs.table.style.width = totalWidth + 'px';\n }\n };\n Grid.prototype.initColumns = function (columnElements, groupCount) {\n var _this = this;\n var idPrefix = navigationTools.getIdPrefix(this.navigationStateRef);\n this._columns = readColumns(columnElements, this.columns, { prevId: 0, idPrefix: idPrefix });\n if (this._columns.length === 0) {\n this._columns = autoGenerateColumns(this.props.data, this.props.group, this.props.expandField, { prevId: 0, idPrefix: idPrefix });\n }\n if (this.props.selectedField) {\n this._columns.filter(function (c) { return c.field === _this.props.selectedField; }).forEach(function (c) {\n c.width = c.width || '50px';\n c.cell = c.cell || GridSelectionCell;\n c.headerCell = c.headerCell || GridHeaderSelectionCell;\n });\n }\n var defaultServiceProps = {\n id: '',\n resizable: true,\n width: '32px',\n title: ' ',\n declarationIndex: -1,\n orderIndex: -1,\n children: [],\n parentIndex: -1,\n depth: 0,\n colSpan: 0,\n rowSpan: 0,\n left: 0,\n right: 0,\n index: 0,\n rightBorder: false,\n ariaColumnIndex: 0,\n isAccessible: true\n };\n var columnIndexOffset = 0;\n if (this.props.expandField && (this.props.onExpandChange) && this.props.detail) {\n this._columns.unshift(__assign({}, defaultServiceProps, { cell: GridHierarchyCell, field: this.props.expandField, headerClassName: 'k-hierarchy-cell k-header', id: navigationTools.generateNavigatableId(\"\" + this._columns.length, idPrefix, 'column') }));\n columnIndexOffset++;\n }\n for (var i = 0; i < groupCount; i++) {\n this._columns.unshift(__assign({}, defaultServiceProps, { isAccessible: false, cell: GridGroupCell, field: 'value' }));\n columnIndexOffset++;\n }\n this._columns.slice(columnIndexOffset).forEach(function (c) { return c.parentIndex >= 0 && (c.parentIndex += columnIndexOffset); });\n this._columnsMap = mapColumns(this._columns);\n this.columnResize.columns = this._columns;\n this.dragLogic.columns = this._columns;\n };\n Grid.prototype.getDataState = function () {\n return {\n filter: this.props.filter,\n sort: this.props.sort,\n skip: this.props.skip,\n take: (this.props.take !== undefined ? this.props.take : this.props.pageSize),\n group: this.props.group\n };\n };\n Grid.prototype.getArguments = function (syntheticEvent) {\n return {\n nativeEvent: syntheticEvent && syntheticEvent.nativeEvent,\n syntheticEvent: syntheticEvent,\n target: this\n };\n };\n /**\n * @hidden\n */\n Grid.displayName = 'KendoReactGrid';\n /**\n * @hidden\n */\n Grid.defaultProps = {\n // never use this\n };\n /**\n * @hidden\n */\n Grid.propTypes = {\n data: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.shape({\n data: PropTypes.array,\n total: PropTypes.number\n })\n ]),\n sortable: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n mode: PropTypes.oneOf(['single', 'multiple']),\n allowUnsort: PropTypes.bool\n })\n ]),\n onSortChange: PropTypes.func,\n sort: PropTypes.array,\n filterable: PropTypes.bool,\n filter: PropTypes.any,\n onFilterChange: PropTypes.func,\n pageable: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n buttonCount: PropTypes.number,\n info: PropTypes.bool,\n type: PropTypes.oneOf(['numeric', 'input']),\n pageSizes: PropTypes.oneOfType([PropTypes.bool, PropTypes.arrayOf(PropTypes.number)]),\n previousNext: PropTypes.bool\n })\n ]),\n pageSize: PropTypes.number,\n onPageChange: PropTypes.func,\n total: PropTypes.number,\n skip: PropTypes.number,\n take: PropTypes.number,\n fixedScroll: PropTypes.bool,\n onExpandChange: PropTypes.func,\n expandField: PropTypes.string,\n selectedField: PropTypes.string,\n onSelectionChange: PropTypes.func,\n onHeaderSelectionChange: PropTypes.func,\n resizable: PropTypes.bool,\n reorderable: PropTypes.bool,\n group: PropTypes.any,\n groupable: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n enabled: PropTypes.bool,\n footer: PropTypes.oneOf(['always', 'visible', 'none'])\n })\n ]),\n onGroupChange: PropTypes.func,\n onRowClick: PropTypes.func,\n onRowDoubleClick: PropTypes.func,\n onItemChange: PropTypes.func,\n editField: PropTypes.string,\n scrollable: PropTypes.oneOf(['none', 'scrollable', 'virtual']),\n rowHeight: PropTypes.number,\n detail: PropTypes.any,\n style: PropTypes.object,\n onDataStateChange: PropTypes.func,\n onColumnResize: PropTypes.func,\n onColumnReorder: PropTypes.func,\n dataItemKey: PropTypes.string,\n navigatable: PropTypes.bool\n };\n /** @hidden */\n Grid.contextType = TableKeyboardNavigationContext;\n return Grid;\n}(React.Component));\nexport { Grid };\n","/**\n * @hidden\n */\nexport function tableColumnsVirtualization(args) {\n var enabled = args.enabled, _a = args.columns, columns = _a === void 0 ? [] : _a, tableViewPortWidth = args.tableViewPortWidth, scrollLeft = args.scrollLeft;\n var colSpans = columns.map(function () { return 1; });\n var hiddenColumns = columns.map(function () { return false; });\n if (!enabled) {\n return { colSpans: colSpans, hiddenColumns: hiddenColumns };\n }\n var widths = columns.map(function (c) { return parseFloat((c.width || '').toString()) || 10; });\n var widthOfHiddenColumns = 0;\n for (var i = 0; i < columns.length; i++) {\n if (columns[i].locked) {\n continue;\n }\n var considerNext = (i < widths.length - 1) ? widths[i + 1] : 0;\n if (widthOfHiddenColumns + widths[i] + considerNext < scrollLeft) {\n hiddenColumns[i] = true;\n widthOfHiddenColumns += widths[i];\n }\n else {\n break;\n }\n }\n var totalWidth = widths.reduce(function (acc, current) { return acc + current; }, 0);\n widthOfHiddenColumns = 0;\n for (var i = columns.length - 1; i >= 0; i--) {\n if (columns[i].locked) {\n continue;\n }\n if (widthOfHiddenColumns + 2 * widths[i] < totalWidth - tableViewPortWidth - scrollLeft) {\n hiddenColumns[i] = true;\n widthOfHiddenColumns += widths[i];\n }\n else {\n break;\n }\n }\n var hiddenCols = hiddenColumns.slice();\n var hidden = function (value) { return value; };\n var lastVisible = hiddenCols.lastIndexOf(false);\n var anyHidden = hiddenCols.some(hidden);\n var allHidden = hiddenCols.every(hidden);\n var hiddenSeqLength;\n var updateIndex;\n while (anyHidden && hiddenCols.length && (lastVisible !== -1 || allHidden)) {\n if (lastVisible < hiddenCols.length - 1) {\n hiddenSeqLength = allHidden ? hiddenCols.length : hiddenCols.length - lastVisible - 1;\n updateIndex = hiddenCols.length - hiddenSeqLength;\n if (updateIndex === 0) {\n updateIndex = hiddenSeqLength - 1;\n }\n hiddenColumns[updateIndex] = false;\n colSpans[updateIndex] = hiddenSeqLength;\n hiddenCols.splice(lastVisible + 1, hiddenSeqLength);\n }\n while (hiddenCols.length && !hiddenCols[hiddenCols.length - 1]) {\n hiddenCols.pop();\n }\n lastVisible = hiddenCols.lastIndexOf(false);\n anyHidden = hiddenCols.some(hidden);\n allHidden = hiddenCols.every(hidden);\n }\n return { colSpans: colSpans, hiddenColumns: hiddenColumns };\n}\n","/**\n * @hidden\n */\nvar normalizeSettings = function (_a) {\n var _b = _a.buttonCount, buttonCount = _b === void 0 ? 10 : _b, _c = _a.info, info = _c === void 0 ? true : _c, _d = _a.type, type = _d === void 0 ? 'numeric' : _d, _e = _a.pageSizes, pageSizes = _e === void 0 ? undefined : _e, _f = _a.previousNext, previousNext = _f === void 0 ? true : _f;\n return ({\n buttonCount: buttonCount,\n info: info,\n pageSizes: pageSizes === true ? [5, 10, 20] : (pageSizes || undefined),\n previousNext: previousNext,\n type: type\n });\n};\n/**\n * @hidden\n */\nexport var normalize = function (settings) {\n return normalizeSettings(settings === true ? {} : settings);\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * The GridColumnMenuItemGroup that will be used inside the Grid ColumnMenu.\n */\nvar GridColumnMenuItemGroup = /** @class */ (function (_super) {\n __extends(GridColumnMenuItemGroup, _super);\n function GridColumnMenuItemGroup() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n GridColumnMenuItemGroup.prototype.render = function () {\n var children = this.props.children;\n return (React.createElement(\"div\", { className: \"k-columnmenu-item-wrapper\" }, children));\n };\n return GridColumnMenuItemGroup;\n}(React.Component));\nexport { GridColumnMenuItemGroup };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * The GridColumnMenuItem component that is used inside the Grid ColumnMenu.\n */\nvar GridColumnMenuItem = /** @class */ (function (_super) {\n __extends(GridColumnMenuItem, _super);\n function GridColumnMenuItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onClick = function (e) {\n if (_this.props.onClick) {\n _this.props.onClick(e);\n }\n };\n return _this;\n }\n /**\n * @hidden\n */\n GridColumnMenuItem.prototype.render = function () {\n var _a = this.props, title = _a.title, iconClass = _a.iconClass, selected = _a.selected;\n return (React.createElement(\"div\", { onClick: this.onClick, className: \"k-columnmenu-item \" + (selected ? 'k-state-selected' : '') },\n iconClass && React.createElement(\"span\", { className: \"k-icon \" + iconClass }),\n title));\n };\n return GridColumnMenuItem;\n}(React.Component));\nexport { GridColumnMenuItem };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { provideLocalizationService, registerForIntl, registerForLocalization } from '@progress/kendo-react-intl';\nimport { GridColumnMenuItemGroup } from './GridColumnMenuItemGroup';\nimport { GridColumnMenuItem } from './GridColumnMenuItem';\nimport { groupColumn, ungroupColumn, messages } from '../messages';\n/**\n * @example\n * ```jsx-no-run\n * class TextColumnMenu extends React.Component {\n * render() {\n * return (\n *
    \n * \n * \n *
    );\n * }\n * }\n *\n * class App extends React.PureComponent {\n * constructor(props) {\n * super(props);\n *\n * this.state = this.createAppState({\n * take: 10,\n * skip: 0\n * });\n * }\n *\n * createAppState(dataState) {\n * return {\n * result: process(products.slice(0), dataState),\n * dataState: dataState\n * };\n * }\n *\n * dataStateChange = (event) => {\n * this.setState(this.createAppState(event.dataState));\n * }\n *\n * render() {\n * return (\n *
    \n * \n * \n * \n * \n *
    \n *
    \n * );\n * }\n * }\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar GridColumnMenuGroup = /** @class */ (function (_super) {\n __extends(GridColumnMenuGroup, _super);\n function GridColumnMenuGroup() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.onGroupClick = function (event) {\n event.preventDefault();\n if (_this.props.onGroupChange) {\n var column_1 = _this.props.column;\n if (!column_1.field) {\n return;\n }\n var newGroup = (_this.props.group || []).slice();\n var groupIndex = newGroup.findIndex(function (group) { return group.field === column_1.field; });\n if (groupIndex > -1) {\n newGroup.splice(groupIndex, 1);\n }\n else {\n newGroup.push({\n field: column_1.field\n });\n }\n _this.props.onGroupChange(newGroup, event);\n }\n if (_this.props.onCloseMenu) {\n _this.props.onCloseMenu();\n }\n };\n return _this;\n }\n /**\n * @hidden\n */\n GridColumnMenuGroup.prototype.render = function () {\n var _a = this.props, group = _a.group, column = _a.column;\n var localizationService = provideLocalizationService(this);\n var isGrouped = Boolean(group && column.field && group.find(function (currentGroup) { return currentGroup.field === column.field; }));\n var message = !isGrouped ? groupColumn : ungroupColumn;\n var iconClass = !isGrouped ? 'k-i-group' : 'k-i-ungroup';\n return (React.createElement(GridColumnMenuItemGroup, null,\n React.createElement(GridColumnMenuItem, { title: localizationService.toLanguageString(message, messages[message]), iconClass: iconClass, onClick: this.onGroupClick })));\n };\n return GridColumnMenuGroup;\n}(React.Component));\nexport { GridColumnMenuGroup };\nregisterForIntl(GridColumnMenuGroup);\nregisterForLocalization(GridColumnMenuGroup);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { GridColumnMenuItem } from './GridColumnMenuItem';\nimport { GridColumnMenuItemGroup } from './GridColumnMenuItemGroup';\nimport { normalize } from '../interfaces/GridSortSettings';\nimport { provideLocalizationService, registerForIntl, registerForLocalization } from '@progress/kendo-react-intl';\nimport { messages, sortAscending, sortDescending } from '../messages';\n/**\n * @hidden\n */\nvar ASC_DIR = 'asc';\n/**\n * @hidden\n */\nvar DESC_DIR = 'desc';\n/**\n * @hidden\n */\nvar sortSeqMap = {\n true: {\n 'asc': { 'asc': '', 'desc': 'desc' },\n 'desc': { 'asc': 'asc', 'desc': '' },\n '': { 'asc': 'asc', 'desc': 'desc' }\n },\n false: {\n 'asc': { 'asc': 'asc', 'desc': 'desc' },\n 'desc': { 'asc': 'asc', 'desc': 'desc' },\n '': { 'asc': 'asc', 'desc': 'desc' }\n }\n};\n/**\n * @hidden\n */\nvar sortIndex = function (field, sort) {\n if (!sort) {\n return -1;\n }\n return sort.findIndex(function (s) { return s.field === field; });\n};\n/**\n * @hidden\n */\nvar sortedAsc = function (sortedIndex, sort) {\n return !!(sort && sortedIndex > -1 && sort[sortedIndex].dir === ASC_DIR);\n};\n/**\n * @hidden\n */\nvar sortedDesc = function (sortedIndex, sort) {\n return !!(sort && sortedIndex > -1 && sort[sortedIndex].dir === DESC_DIR);\n};\n/**\n * @example\n * ```jsx-no-run\n * class ColumnMenu extends React.Component {\n * render() {\n * return (\n *
    \n * \n *
    );\n * }\n * }\n *\n * class App extends React.PureComponent {\n * constructor(props) {\n * super(props);\n *\n * this.state = this.createAppState({\n * take: 10,\n * skip: 0\n * });\n * }\n *\n * createAppState(dataState) {\n * return {\n * result: process(products.slice(0), dataState),\n * dataState: dataState\n * };\n * }\n *\n * dataStateChange = (event) => {\n * this.setState(this.createAppState(event.dataState));\n * }\n *\n * render() {\n * return (\n *
    \n * \n * \n * \n * \n *
    \n *
    \n * );\n * }\n * }\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar GridColumnMenuSort = /** @class */ (function (_super) {\n __extends(GridColumnMenuSort, _super);\n function GridColumnMenuSort() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.onAscClick = function (event) {\n _this.onSort(event, ASC_DIR);\n if (_this.props.onCloseMenu) {\n _this.props.onCloseMenu();\n }\n };\n /**\n * @hidden\n */\n _this.onDescClick = function (event) {\n _this.onSort(event, DESC_DIR);\n if (_this.props.onCloseMenu) {\n _this.props.onCloseMenu();\n }\n };\n /**\n * @hidden\n */\n _this.onSort = function (event, selectedDir) {\n event.preventDefault();\n if (!_this.props.onSortChange) {\n return;\n }\n var _a = _this.props, column = _a.column, sortable = _a.sortable, sort = _a.sort;\n var _b = normalize(sortable || false, false), allowUnsort = _b.allowUnsort, mode = _b.mode;\n var oldDescriptor = (sort || []).filter(function (d) { return d.field === column.field; })[0];\n var dir = sortSeqMap[allowUnsort][oldDescriptor && oldDescriptor.dir || ''][selectedDir];\n var newDescriptor = (mode === 'single') ?\n [] : (_this.props.sort || []).filter(function (d) { return d.field !== column.field; });\n if (dir !== '' && column.field) {\n newDescriptor.push({ field: column.field, dir: dir });\n }\n _this.props.onSortChange(newDescriptor, event);\n };\n return _this;\n }\n /**\n * @hidden\n */\n GridColumnMenuSort.prototype.render = function () {\n var _a = this.props, sort = _a.sort, column = _a.column;\n var currentSortIndex = sortIndex(column.field, sort);\n var localizationService = provideLocalizationService(this);\n return (React.createElement(GridColumnMenuItemGroup, null,\n React.createElement(GridColumnMenuItem, { title: localizationService.toLanguageString(sortAscending, messages[sortAscending]), iconClass: 'k-i-sort-asc-sm', selected: sortedAsc(currentSortIndex, sort), onClick: this.onAscClick }),\n React.createElement(GridColumnMenuItem, { title: localizationService.toLanguageString(sortDescending, messages[sortDescending]), iconClass: 'k-i-sort-desc-sm', selected: sortedDesc(currentSortIndex, sort), onClick: this.onDescClick })));\n };\n /* eslint-disable max-len */\n /**\n * Can be used to check if sorting is applied to a specific field ([see example]({% slug column_menu_grid %}#toc-styling-the-column-menu-icon)). Useful for creating active sort indicators.\n */\n // tslint:enable:max-line-length\n GridColumnMenuSort.active = function (field, sort) {\n var currentSortIndex = sortIndex(field, sort);\n return sortedDesc(currentSortIndex, sort) || sortedAsc(currentSortIndex, sort);\n };\n return GridColumnMenuSort;\n}(React.Component));\nexport { GridColumnMenuSort };\nregisterForIntl(GridColumnMenuSort);\nregisterForLocalization(GridColumnMenuSort);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Reveal } from '@progress/kendo-react-animation';\n/**\n * The GridColumnMenuItemContent that will be used inside the Grid ColumnMenu.\n */\nvar GridColumnMenuItemContent = /** @class */ (function (_super) {\n __extends(GridColumnMenuItemContent, _super);\n function GridColumnMenuItemContent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n GridColumnMenuItemContent.prototype.render = function () {\n return (React.createElement(\"div\", { className: 'k-columnmenu-item-content' },\n React.createElement(Reveal, { style: { position: 'relative', display: 'block' } }, this.props.show ? this.props.children : null)));\n };\n return GridColumnMenuItemContent;\n}(React.Component));\nexport { GridColumnMenuItemContent };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\nimport { NumericTextBox } from '@progress/kendo-react-inputs';\nimport { DatePicker } from '@progress/kendo-react-dateinputs';\nimport { cellBoolDropdownChange, cellInputChange, cellOperatorChange } from '../filterCommon';\n/**\n * @hidden\n */\nvar GridColumnMenuFilterCell = /** @class */ (function (_super) {\n __extends(GridColumnMenuFilterCell, _super);\n function GridColumnMenuFilterCell(props) {\n var _this = _super.call(this, props) || this;\n _this.renderOperatorEditor = function () {\n if (_this.props.filterType === 'boolean') {\n return;\n }\n var value = _this.props.operators.find(function (item) { return item.operator === _this.props.operator; }) || null;\n return (React.createElement(DropDownList, { value: value, onChange: _this.operatorChange, data: _this.props.operators, textField: \"text\" }));\n };\n _this.inputChange = _this.inputChange.bind(_this);\n _this.operatorChange = _this.operatorChange.bind(_this);\n _this.boolDropdownChange = _this.boolDropdownChange.bind(_this);\n return _this;\n }\n /**\n * @hidden\n */\n GridColumnMenuFilterCell.prototype.render = function () {\n return (React.createElement(\"div\", null,\n this.renderOperatorEditor(),\n this.filterComponent(this.props.filterType, this.props.value, this.props.booleanValues)));\n };\n GridColumnMenuFilterCell.prototype.inputChange = function (value, e) {\n cellInputChange(value, e, this.props);\n };\n GridColumnMenuFilterCell.prototype.operatorChange = function (event) {\n cellOperatorChange(event, this.props.value, this.props.onChange);\n };\n GridColumnMenuFilterCell.prototype.boolDropdownChange = function (event) {\n cellBoolDropdownChange(event, this.props.onChange);\n };\n GridColumnMenuFilterCell.prototype.filterComponent = function (filterType, value, booleanValues) {\n var _this = this;\n switch (filterType) {\n case 'numeric':\n return (React.createElement(NumericTextBox, { value: value, onChange: function (e) { _this.inputChange(e.value, e.syntheticEvent); }, rangeOnEnter: false }));\n case 'date':\n return (React.createElement(DatePicker, { value: value, onChange: function (e) { _this.inputChange(e.value, e.syntheticEvent); } }));\n case 'boolean':\n var noFilterSet_1 = function (filter) { return filter === null || filter === undefined; };\n return (React.createElement(DropDownList, { onChange: this.boolDropdownChange, value: booleanValues.find(function (item) { return item.operator === (noFilterSet_1(value) ? '' : value); }), data: booleanValues, textField: \"text\" }));\n default: return (React.createElement(\"input\", { className: \"k-textbox\", value: value || '', onChange: function (e) { _this.inputChange(e.target.value, e); } }));\n }\n };\n return GridColumnMenuFilterCell;\n}(React.Component));\nexport { GridColumnMenuFilterCell };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { GridColumnMenuFilterCell } from './GridColumnMenuFilterCell';\nimport { DropDownList } from '@progress/kendo-react-dropdowns';\n/**\n * @hidden\n */\nvar GridColumnMenuFilterUI = /** @class */ (function (_super) {\n __extends(GridColumnMenuFilterUI, _super);\n function GridColumnMenuFilterUI() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridColumnMenuFilterUI.prototype.render = function () {\n var _a = this.props, firstFilterProps = _a.firstFilterProps, hideSecondFilter = _a.hideSecondFilter, secondFilterProps = _a.secondFilterProps, logicData = _a.logicData, logicValue = _a.logicValue, onLogicChange = _a.onLogicChange;\n return (React.createElement(\"div\", null,\n React.createElement(GridColumnMenuFilterCell, __assign({}, firstFilterProps)),\n !hideSecondFilter && (React.createElement(\"div\", null,\n React.createElement(DropDownList, { data: logicData, value: logicValue, onChange: onLogicChange, className: 'k-filter-and', textField: \"text\" }),\n React.createElement(GridColumnMenuFilterCell, __assign({}, secondFilterProps))))));\n };\n return GridColumnMenuFilterUI;\n}(React.Component));\nexport { GridColumnMenuFilterUI };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { isCompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { GridColumnMenuItem } from './GridColumnMenuItem';\nimport { GridColumnMenuItemGroup } from './GridColumnMenuItemGroup';\nimport { GridColumnMenuItemContent } from './GridColumnMenuItemContent';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { operatorMap, getDefaultOperator, filterLogicList, defaultHideSecondFilter, booleanFilterValues, getFilterType, IsUnaryFilter } from '../filterCommon';\nimport { messages, filterClearButton, filterSubmitButton, filterTitle } from '../messages';\nimport { GridColumnMenuFilterUI } from './GridColumnMenuFilterUI';\n/**\n * @hidden\n */\nexport var rootFilterOrDefault = function (rootFilter) {\n return (rootFilter || { filters: [], logic: 'and' });\n};\n/**\n * @hidden\n */\nexport var filterGroupByField = function (field, filter) {\n var rootFilter = rootFilterOrDefault(filter);\n var compositeFilters = rootFilter.filters\n .filter(function (f) {\n if (isCompositeFilterDescriptor(f)) {\n return f.filters &&\n f.filters.length &&\n f.filters.length <= 2 &&\n !f.filters.find(function (nf) { return isCompositeFilterDescriptor(nf) || nf.field !== field; });\n }\n return false;\n });\n return compositeFilters[0] || null;\n};\n/**\n * @example\n * ```jsx-no-run\n * class TextColumnMenu extends React.Component {\n * render() {\n * return (\n *
    \n * \n * \n *
    );\n * }\n * }\n *\n * class App extends React.PureComponent {\n * constructor(props) {\n * super(props);\n *\n * this.state = this.createAppState({\n * take: 10,\n * skip: 0\n * });\n * }\n *\n * createAppState(dataState) {\n * return {\n * result: process(products.slice(0), dataState),\n * dataState: dataState\n * };\n * }\n *\n * dataStateChange = (event) => {\n * this.setState(this.createAppState(event.dataState));\n * }\n *\n * render() {\n * return (\n *
    \n * \n * \n * \n * \n *
    \n *
    \n * );\n * }\n * }\n *\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar GridColumnMenuFilter = /** @class */ (function (_super) {\n __extends(GridColumnMenuFilter, _super);\n function GridColumnMenuFilter(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.removeGroup = function (group, rootFilter) {\n var filters = rootFilter.filters.slice();\n var groupIndex = filters\n .findIndex(function (f) { return f === group; });\n if (groupIndex > -1) {\n filters.splice(groupIndex, 1);\n }\n return __assign({}, rootFilter, { filters: filters });\n };\n /**\n * @hidden\n */\n _this.insertGroup = function (group, rootFilter) {\n return __assign({}, rootFilter, { filters: [\n group\n ].concat(rootFilter.filters) });\n };\n /**\n * @hidden\n */\n _this.isControlled = function () { return _this.props.expanded !== undefined; };\n /**\n * @hidden\n */\n _this.onFilterExpand = function () {\n var isControlled = _this.isControlled();\n var nextValue = !(isControlled ? _this.props.expanded : _this.state.expanded);\n if (_this.props.onExpandChange) {\n _this.props.onExpandChange(nextValue);\n }\n if (!isControlled) {\n _this.setState({\n expanded: nextValue\n });\n }\n };\n /**\n * @hidden\n */\n _this.firstFilterChange = function (event) {\n _this.filterChange(0, event);\n };\n /**\n * @hidden\n */\n _this.secondFilterChange = function (event) {\n _this.filterChange(1, event);\n };\n /**\n * @hidden\n */\n _this.filterChange = function (filterIndex, e) {\n var filters = _this.state.filterGroup.filters.map(function (f, i) {\n if (i === filterIndex) {\n return __assign({}, f, { value: e.value, operator: e.operator });\n }\n return f;\n });\n _this.setState({\n filterGroup: __assign({}, _this.state.filterGroup, { filters: filters })\n });\n };\n /**\n * @hidden\n */\n _this.logicChange = function (event) {\n _this.setState({\n filterGroup: __assign({}, _this.state.filterGroup, { logic: event.target.value.operator })\n });\n };\n /**\n * @hidden\n */\n _this.clear = function (event) {\n event.preventDefault();\n if (!_this.props.onFilterChange) {\n return;\n }\n var field = _this.props.column.field;\n var rootFilter = rootFilterOrDefault(_this.props.filter);\n var filterGroup = filterGroupByField(field, _this.props.filter);\n var rootFilters = rootFilter.filters.filter(function (f) { return f !== filterGroup; });\n if (!rootFilters.length) {\n _this.props.onFilterChange(null, event);\n }\n else {\n _this.props.onFilterChange(__assign({}, rootFilter, { filters: rootFilters }), event);\n }\n if (_this.props.onCloseMenu) {\n _this.props.onCloseMenu();\n }\n };\n /**\n * @hidden\n */\n _this.currentFilterGroup = function () {\n return __assign({}, _this.state.filterGroup, { filters: _this.state\n .filterGroup\n .filters\n .filter(function (nf) {\n return (nf.value !== undefined && nf.value !== null && nf.value !== '') ||\n (nf.value === null && nf.operator);\n }) });\n };\n /**\n * @hidden\n */\n _this.submit = function (event) {\n event.preventDefault();\n if (!_this.props.onFilterChange) {\n return;\n }\n var field = _this.props.column.field;\n var rootFilter = rootFilterOrDefault(_this.props.filter);\n var filterGroup = filterGroupByField(field, _this.props.filter);\n var currentFilterGroup = _this.currentFilterGroup();\n var updatedFilter = null;\n if (filterGroup && currentFilterGroup.filters.length > 0) {\n var rootFilters = rootFilter.filters.map(function (f) {\n if (f === filterGroup) {\n return currentFilterGroup;\n }\n return f;\n });\n updatedFilter = __assign({}, rootFilter, { filters: rootFilters });\n }\n else if (currentFilterGroup.filters.length === 0) {\n var rootFilters = rootFilter\n .filters\n .filter(function (f) { return f !== filterGroup; });\n if (rootFilters.length) {\n updatedFilter = __assign({}, rootFilter, { filters: rootFilters });\n }\n }\n else {\n updatedFilter = __assign({}, rootFilter, { filters: rootFilter.filters.concat([currentFilterGroup]) });\n }\n _this.props.onFilterChange(updatedFilter, event);\n if (_this.props.onCloseMenu) {\n _this.props.onCloseMenu();\n }\n };\n var filterGroup;\n if (props.column && props.column.field) {\n var filterType = getFilterType(props.column.filter);\n var defaultOperator = getDefaultOperator(props.filterOperators, filterType);\n filterGroup = filterGroupByField(props.column.field, props.filter);\n filterGroup = filterGroup ? __assign({}, filterGroup, { filters: filterGroup.filters.map(function (f) {\n return __assign({}, f);\n }) }) : {\n logic: 'and',\n filters: [\n { field: props.column.field, operator: defaultOperator, value: IsUnaryFilter(defaultOperator) ? null : undefined },\n { field: props.column.field, operator: defaultOperator, value: IsUnaryFilter(defaultOperator) ? null : undefined }\n ]\n };\n if (filterGroup.filters.filter(function (x) { return x.field === props.column.field; }).length === 1) {\n filterGroup.filters.splice(1, 0, { field: props.column.field, operator: defaultOperator });\n }\n }\n _this.state = {\n expanded: props.expanded || false,\n filterGroup: filterGroup\n };\n return _this;\n }\n /**\n * @hidden\n */\n GridColumnMenuFilter.prototype.render = function () {\n var _a = this.props, column = _a.column, filterUI = _a.filterUI, hideSecondFilter = _a.hideSecondFilter, filterOperators = _a.filterOperators;\n if (!column || !column.field) {\n return React.createElement(\"div\", null);\n }\n var filterType = getFilterType(column.filter);\n var currentHideSecondFilter = hideSecondFilter !== undefined ?\n hideSecondFilter : defaultHideSecondFilter[filterType];\n var localizationService = provideLocalizationService(this);\n var filters = this.state.filterGroup.filters;\n var currentOperators = operatorMap(filterOperators[filterType], localizationService);\n var booleanValues = operatorMap(booleanFilterValues, localizationService);\n var firstFilterCellProps = {\n field: column.field,\n value: filters[0].value,\n operator: filters[0].operator,\n operators: currentOperators,\n booleanValues: booleanValues,\n onChange: this.firstFilterChange,\n filterType: filterType\n };\n var secondFilterCellProps = {\n field: column.field,\n value: filters[1].value,\n operator: filters[1].operator,\n operators: currentOperators,\n booleanValues: booleanValues,\n onChange: this.secondFilterChange,\n filterType: filterType\n };\n var filterLogic = this.state.filterGroup.logic;\n var logicData = operatorMap(filterLogicList, localizationService);\n var logicProps = {\n value: logicData.find(function (item) { return item.operator === (filterLogic === null ? '' : filterLogic); }),\n onChange: this.logicChange,\n data: logicData\n };\n var FilterUI = filterUI;\n var filterUIProps = {\n firstFilterProps: firstFilterCellProps,\n secondFilterProps: secondFilterCellProps,\n logicData: logicProps.data,\n logicValue: logicProps.value,\n onLogicChange: logicProps.onChange,\n hideSecondFilter: currentHideSecondFilter\n };\n var isFilterValid = this.currentFilterGroup().filters.length !== 0 ||\n IsUnaryFilter(filters[0].operator) ||\n IsUnaryFilter(filters[1].operator);\n var expandState = this.isControlled() ? this.props.expanded : this.state.expanded;\n return (React.createElement(GridColumnMenuItemGroup, null,\n React.createElement(GridColumnMenuItem, { title: localizationService.toLanguageString(filterTitle, messages[filterTitle]), iconClass: 'k-i-filter', onClick: this.onFilterExpand }),\n React.createElement(GridColumnMenuItemContent, { show: !!expandState },\n React.createElement(\"div\", { className: 'kendo-grid-filter-menu-container' },\n React.createElement(\"form\", { className: 'k-filter-menu k-group k-reset k-state-border-up', onSubmit: this.submit, onReset: this.clear, onKeyDown: function (e) { return e.stopPropagation(); } },\n React.createElement(\"div\", { className: 'k-filter-menu-container' },\n FilterUI ?\n React.createElement(FilterUI, __assign({}, filterUIProps)) :\n React.createElement(GridColumnMenuFilterUI, __assign({}, filterUIProps)),\n React.createElement(\"div\", { className: 'k-actions k-hstack k-justify-content-stretch' },\n React.createElement(\"button\", { className: 'k-button', type: 'reset' }, localizationService\n .toLanguageString(filterClearButton, messages[filterClearButton])),\n React.createElement(\"button\", { className: 'k-button k-primary', disabled: !isFilterValid }, localizationService\n .toLanguageString(filterSubmitButton, messages[filterSubmitButton])))))))));\n };\n /* eslint-disable max-len */\n /**\n * Can be used to check if filtering is applied to a specific field ([see example]({% slug column_menu_grid %}#toc-styling-the-column-menu-icon)). Useful for creating active filter indicators.\n */\n // tslint:enable:max-line-length\n GridColumnMenuFilter.active = function (field, filter) {\n return !!filterGroupByField(field, filter);\n };\n return GridColumnMenuFilter;\n}(React.Component));\nexport { GridColumnMenuFilter };\nregisterForLocalization(GridColumnMenuFilter);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { GridColumnMenuItem } from './GridColumnMenuItem';\nimport { GridColumnMenuItemGroup } from './GridColumnMenuItemGroup';\nimport { GridColumnMenuItemContent } from './GridColumnMenuItemContent';\nimport { Checkbox } from '@progress/kendo-react-inputs';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { messages, filterClearButton, filterSubmitButton, filterTitle, searchPlaceholder, filterCheckAll, filterSelectedItems } from '../messages';\nimport { filterBy } from '@progress/kendo-data-query';\nimport { clone } from '@progress/kendo-react-common';\nimport { getNestedValue } from '../utils';\n/**\n * @hidden\n */\nvar isArrayEqual = function (firstArray, secondArray) {\n if (firstArray.length !== secondArray.length) {\n return false;\n }\n return firstArray.every(function (ex, i) { return ex === secondArray[i]; });\n};\nvar GridColumnMenuCheckboxFilter = /** @class */ (function (_super) {\n __extends(GridColumnMenuCheckboxFilter, _super);\n function GridColumnMenuCheckboxFilter(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.defaultFilter = function () {\n if (_this.props.filter) {\n return clone(_this.props.filter);\n }\n return { filters: [], logic: 'and' };\n };\n /**\n * @hidden\n */\n _this.isControlled = function () { return _this.props.expanded !== undefined; };\n /**\n * @hidden\n */\n _this.parseData = function (originalData, isUnique) {\n var field = _this.props.column.field || '';\n var data = originalData.map(function (item) { return getNestedValue(field, item); });\n if (isUnique) {\n return data.filter(function (item, index) { return data.indexOf(item) === index; });\n }\n return data;\n };\n /**\n * @hidden\n */\n _this.getFilterIndex = function () {\n var field = _this.props.column.field;\n var currentFilter = _this.defaultFilter();\n var compositeFilterIndex = currentFilter.filters.findIndex(function (filter) {\n return filter.filters && filter.filters.length > 0 && filter.filters[0].field === field;\n });\n return compositeFilterIndex;\n };\n /**\n * @hidden\n */\n _this.onFilterExpand = function () {\n var isControlled = _this.isControlled();\n var nextValue = !(isControlled ? _this.props.expanded : _this.state.expanded);\n if (_this.props.onExpandChange) {\n _this.props.onExpandChange(nextValue);\n }\n if (!isControlled) {\n _this.setState({\n expanded: nextValue\n });\n }\n };\n /**\n * @hidden\n */\n _this.handleSearchChange = function (e) {\n var filterOperator = _this.props.searchBoxFilterOperator ? _this.props.searchBoxFilterOperator : 'startswith';\n var filterExpression = {\n logic: 'and',\n filters: [\n { field: _this.props.column.field, operator: filterOperator, value: e.target.value, ignoreCase: true }\n ]\n };\n _this.setState({\n value: e.target.value,\n data: _this.parseData(filterBy(_this.props.data || [], filterExpression), _this.props.uniqueData)\n });\n };\n /**\n * @hidden\n */\n _this.handleClear = function () {\n var filterOperator = _this.props.searchBoxFilterOperator ? _this.props.searchBoxFilterOperator : 'startswith';\n var filterExpression = {\n logic: 'and',\n filters: [\n { field: _this.props.column.field, operator: filterOperator, value: '', ignoreCase: true }\n ]\n };\n _this.setState({\n value: '',\n data: _this.parseData(filterBy(_this.props.data || [], filterExpression), _this.props.uniqueData)\n });\n };\n /**\n * @hidden\n */\n _this.clear = function (e) {\n e.preventDefault();\n if (!_this.props.onFilterChange) {\n return;\n }\n var updatedFilter = _this.state.currentFilter || null;\n if (updatedFilter !== null && updatedFilter.filters.length > 0) {\n if (_this.compositeFilterIndex >= 0) {\n updatedFilter.filters.splice(_this.compositeFilterIndex, 1);\n }\n _this.props.onFilterChange(updatedFilter, e);\n }\n else {\n _this.props.onFilterChange(null, e);\n }\n if (_this.props.onCloseMenu) {\n _this.props.onCloseMenu();\n }\n };\n /**\n * @hidden\n */\n _this.submit = function (e) {\n e.preventDefault();\n if (!_this.props.onFilterChange) {\n return;\n }\n var updatedFilter = _this.state.currentFilter || null;\n _this.props.onFilterChange(updatedFilter, e);\n if (_this.props.onCloseMenu) {\n _this.props.onCloseMenu();\n }\n };\n /**\n * @hidden\n */\n _this.handleCheckBoxChange = function (e, value) {\n var field = _this.props.column.field || '';\n var newFilter = __assign({}, _this.state.currentFilter);\n var filters = _this.state.currentFilter.filters.slice() || [];\n var fieldFilters = [];\n if (_this.compositeFilterIndex !== -1 && newFilter.filters[_this.compositeFilterIndex].filters && value !== 'all') {\n fieldFilters = newFilter.filters[_this.compositeFilterIndex].filters;\n }\n if (e.value && value === 'all') {\n _this.state.data.forEach(function (item) {\n fieldFilters.push({ field: field, operator: 'eq', value: item });\n });\n }\n else if (e.value) {\n fieldFilters.push({ field: field, operator: 'eq', value: value });\n }\n else if (_this.state.currentFilter) {\n var index = fieldFilters.findIndex(function (filter) { return filter.value === value; });\n fieldFilters.splice(index, 1);\n }\n newFilter.logic = 'and';\n if (_this.compositeFilterIndex !== -1) {\n filters[_this.compositeFilterIndex] = {\n logic: 'or',\n filters: fieldFilters\n };\n }\n else {\n filters.push({\n logic: 'or',\n filters: fieldFilters\n });\n }\n if (!e.value && value === 'all' || fieldFilters.length === 0) {\n filters.splice(_this.compositeFilterIndex, 1);\n }\n newFilter.filters = filters;\n _this.setState({ currentFilter: newFilter });\n };\n /**\n * @hidden\n */\n _this.isAllSelected = function () {\n var isAllChecked = false;\n if (_this.state.currentFilter) {\n var filters_1 = _this.state.currentFilter.filters.slice();\n if (_this.compositeFilterIndex === -1) {\n return false;\n }\n isAllChecked = _this.state.data.every(function (item) {\n if (_this.compositeFilterIndex !== -1 && filters_1[_this.compositeFilterIndex].filters) {\n var index = filters_1[_this.compositeFilterIndex].filters.findIndex(function (filter) { return filter.value === item; });\n return index >= 0;\n }\n return false;\n });\n return isAllChecked;\n }\n return isAllChecked;\n };\n _this.compositeFilterIndex = _this.getFilterIndex();\n _this.state = {\n expanded: props.expanded || false,\n value: '',\n data: _this.parseData(_this.props.data, _this.props.uniqueData) || [],\n dataFromProps: _this.parseData(_this.props.data, false) || [],\n currentFilter: _this.defaultFilter()\n };\n return _this;\n }\n /**\n * @hidden\n */\n GridColumnMenuCheckboxFilter.prototype.componentDidUpdate = function () {\n var field = this.props.column.field || '';\n var data = this.props.data.map(function (item) { return getNestedValue(field, item); });\n if (!isArrayEqual(data, this.state.dataFromProps)) {\n this.setState({\n data: data,\n dataFromProps: data\n });\n }\n };\n /**\n * @hidden\n */\n GridColumnMenuCheckboxFilter.prototype.render = function () {\n var _this = this;\n var column = this.props.column;\n if (!column || !column.field) {\n return React.createElement(\"div\", null);\n }\n var localizationService = provideLocalizationService(this);\n var expandState = this.isControlled() ? this.props.expanded : this.state.expanded;\n var filterValues = [];\n if (this.state.currentFilter) {\n var currentFilter = this.state.currentFilter.filters.slice();\n this.compositeFilterIndex = currentFilter.findIndex(function (filter) {\n if (filter.filters && filter.filters.length > 0) {\n return filter.filters[0].field === column.field;\n }\n return false;\n });\n if (this.compositeFilterIndex !== -1 && currentFilter[this.compositeFilterIndex].filters.length > 0) {\n currentFilter[this.compositeFilterIndex].filters.forEach(function (filterItem) {\n if (filterItem.field === _this.props.column.field) {\n filterValues.push(filterItem.value);\n }\n });\n }\n }\n var searchBox = this.props.searchBox ?\n React.createElement(this.props.searchBox, { value: this.state.value, onChange: this.handleSearchChange }) :\n (React.createElement(\"div\", { className: \"k-searchbox\" },\n React.createElement(\"span\", { className: \"k-input-prefix\" },\n React.createElement(\"span\", { className: \"k-icon k-i-search\" })),\n React.createElement(\"input\", { className: \"k-input\", type: \"text\", placeholder: localizationService.toLanguageString(searchPlaceholder, messages[searchPlaceholder]), value: this.state.value, onChange: this.handleSearchChange }),\n React.createElement(\"span\", { className: \"k-input-suffix\" },\n React.createElement(\"button\", { type: \"button\", className: \"k-button k-icon-button k-button-clear\", onClick: this.handleClear },\n React.createElement(\"span\", { className: \"k-icon k-i-close\" })))));\n var uniqueFilterValues = filterValues.filter(function (item, index) { return filterValues.indexOf(item) === index; });\n return (React.createElement(GridColumnMenuItemGroup, null,\n React.createElement(GridColumnMenuItem, { title: localizationService.toLanguageString(filterTitle, messages[filterTitle]), iconClass: \"k-i-filter\", onClick: this.onFilterExpand }),\n React.createElement(GridColumnMenuItemContent, { show: !!expandState },\n React.createElement(\"div\", { className: \"kendo-grid-filter-menu-container\" },\n React.createElement(\"form\", { className: \"k-filter-menu k-group k-reset k-state-border-up\", onSubmit: this.submit, onReset: this.clear },\n React.createElement(\"div\", { className: \"k-filter-menu-container\" },\n searchBox,\n React.createElement(\"ul\", { className: \"k-reset k-multicheck-wrap\" },\n React.createElement(\"li\", { className: \"k-item k-check-all-wrap\" },\n React.createElement(Checkbox, { label: localizationService.toLanguageString(filterCheckAll, messages[filterCheckAll]), onChange: function (e) { return _this.handleCheckBoxChange(e, 'all'); }, checked: this.isAllSelected() })),\n this.state.data.map(function (item, index) {\n return (React.createElement(\"li\", { className: \"k-item\", key: index },\n React.createElement(Checkbox, { label: String(item), onChange: function (e) { return _this.handleCheckBoxChange(e, item); }, checked: uniqueFilterValues.includes(item) })));\n })),\n React.createElement(\"div\", { className: \"k-filter-selected-items\" }, uniqueFilterValues.length + ' ' + localizationService.toLanguageString(filterSelectedItems, messages[filterSelectedItems])),\n React.createElement(\"div\", { className: \"k-actions k-hstack k-justify-content-stretch\" },\n React.createElement(\"button\", { className: 'k-button k-primary', type: 'submit' }, localizationService.toLanguageString(filterSubmitButton, messages[filterSubmitButton])),\n React.createElement(\"button\", { className: \"k-button\", type: 'reset' }, localizationService.toLanguageString(filterClearButton, messages[filterClearButton])))))))));\n };\n /**\n * @hidden\n */\n GridColumnMenuCheckboxFilter.defaultProps = {\n uniqueData: true\n };\n return GridColumnMenuCheckboxFilter;\n}(React.Component));\nexport { GridColumnMenuCheckboxFilter };\nregisterForLocalization(GridColumnMenuCheckboxFilter);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/* eslint-disable max-len */\n/**\n * Represents the detail row class of the KendoReact Grid. Used to define custom details for each row. Can be applied for building the hierarchy. If `expandField` is set, the details for each row will be visible or hidden depending on the current data item and its `expandField` value.\n *\n * @example\n * ```jsx\n * class CustomGridDetailRow extends GridDetailRow {\n * render() {\n * const detailData = this.props.dataItem.MasterField2;\n * return (\n *
    \n * This is detail template with another grid inside it\n * \n *
    \n * );\n * }\n * }\n *\n * class App extends React.Component {\n * constructor(props) {\n * super(props);\n * this.state = {\n * data: [{MasterField1:'A1', MasterField2: [{DetailField1: 1, DetailField2: 2}]},\n * {MasterField1:'B1', MasterField2: [{DetailField1: 3, DetailField2: 4}]},\n * {MasterField1:'C1', MasterField2: [{DetailField1: 5, DetailField2: 6}]}]\n * };\n * }\n * render() {\n * return (\n * \n * \n * \n * );\n * }\n * }\n * ReactDOM.render(\n * ,\n * document.querySelector('my-app')\n * );\n * ```\n */\n// tslint:enable:max-line-length\nvar GridDetailRow = /** @class */ (function (_super) {\n __extends(GridDetailRow, _super);\n function GridDetailRow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n GridDetailRow.prototype.render = function () {\n return null;\n };\n return GridDetailRow;\n}(React.Component));\nexport { GridDetailRow };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * Represents the GridToolbar component.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * state = {\n * data: [\n * {'Column1':'A1', 'Column2':'A2'},\n * {'Column1':'B1', 'Column2':'B2'},\n * {'Column1':'C1', 'Column2':'C2'}\n * ]\n * }\n *\n * customClick = () => {\n * alert(\"Custom handler in custom toolbar\");\n * }\n * render() {\n * return (\n * \n * \n * Click\n * \n * \n * \n * );\n * }\n * }\n * ReactDOM.render(\n * ,\n * document.querySelector('my-app')\n * );\n * ```\n */\nvar GridToolbar = /** @class */ (function (_super) {\n __extends(GridToolbar, _super);\n function GridToolbar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @hidden\n */\n GridToolbar.prototype.render = function () {\n return (React.createElement(\"div\", { className: \"k-toolbar k-grid-toolbar\" }, this.props.children));\n };\n /**\n * @hidden\n */\n GridToolbar.displayName = 'KendoReactGridToolbar';\n return GridToolbar;\n}(React.Component));\nexport { GridToolbar };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-indicators',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584998,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, useDir } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the [KendoReact Badge component]({% slug overview_badge %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * 99+\n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var Badge = React.forwardRef(function (props, target) {\n validatePackage(packageMetadata);\n var children = props.children, className = props.className, style = props.style;\n var elementRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n React.useImperativeHandle(target, function () { return ({\n element: elementRef.current,\n focus: focusElement\n }); });\n var dir = useDir(elementRef, props.dir);\n var size = React.useMemo(function () { return props.size || defaultProps.size; }, [props.size]);\n var fill = React.useMemo(function () { return props.fill || defaultProps.fill; }, [props.fill]);\n var themeColor = React.useMemo(function () { return props.themeColor || defaultProps.themeColor; }, [props.themeColor]);\n var shape = React.useMemo(function () { return props.shape || defaultProps.shape; }, [props.shape]);\n var cutoutBorder = React.useMemo(function () { return props.cutoutBorder || defaultProps.cutoutBorder; }, [props.cutoutBorder]);\n var position = React.useMemo(function () { return props.position || defaultProps.position; }, [props.position]);\n var align = React.useMemo(function () { return props.align || defaultProps.align; }, [props.align]);\n var badgeClasses = React.useMemo(function () { return classNames('k-badge', {\n 'k-badge-sm': size === 'small',\n 'k-badge-md': size === 'medium',\n 'k-badge-lg': size === 'large',\n 'k-badge-solid': fill === 'solid',\n 'k-badge-outline': fill === 'outline',\n 'k-badge-primary': themeColor === 'primary',\n 'k-badge-secondary': themeColor === 'secondary',\n 'k-badge-tertiary': themeColor === 'tertiary',\n 'k-badge-info': themeColor === 'info',\n 'k-badge-success': themeColor === 'success',\n 'k-badge-warning': themeColor === 'warning',\n 'k-badge-error': themeColor === 'error',\n 'k-badge-dark': themeColor === 'dark',\n 'k-badge-light': themeColor === 'light',\n 'k-badge-inverse': themeColor === 'inverse',\n 'k-badge-inherit': themeColor === 'inherit',\n 'k-badge-circle': shape === 'circle',\n 'k-badge-rectangle': shape === 'rectangle',\n 'k-badge-rounded': shape === 'rounded',\n 'k-badge-dot': shape === 'dot',\n 'k-badge-pill': shape === 'pill',\n 'k-badge-border-cutout': cutoutBorder,\n 'k-badge-edge': position === 'edge',\n 'k-badge-outside': position === 'outside',\n 'k-badge-inside': position === 'inside',\n 'k-top-start': align.vertical === 'top' && align.horizontal === 'start',\n 'k-top-end': align.vertical === 'top' && align.horizontal === 'end',\n 'k-bottom-start': align.vertical === 'bottom' && align.horizontal === 'start',\n 'k-bottom-end': align.vertical === 'bottom' && align.horizontal === 'end'\n }, className); }, [\n size, fill, themeColor,\n shape, cutoutBorder, align,\n position, className\n ]);\n return (React.createElement(\"span\", { className: badgeClasses, style: style, dir: dir }, children));\n});\nBadge.propTypes = {\n className: PropTypes.string,\n dir: PropTypes.string,\n style: PropTypes.object,\n align: PropTypes.shape({\n vertical: PropTypes.oneOf(['top', 'bottom']),\n horizontal: PropTypes.oneOf(['start', 'end'])\n }),\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n fill: PropTypes.oneOf(['solid', 'outline']),\n themeColor: PropTypes.oneOf([\n 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'warning',\n 'error', 'dark', 'light', 'inverse', 'inherit'\n ]),\n shape: PropTypes.oneOf(['circle', 'rectangle', 'rounded', 'dot', 'pill']),\n position: PropTypes.oneOf(['edge', 'outside', 'inside']),\n cutoutBorder: PropTypes.bool\n};\nvar defaultProps = {\n size: 'medium',\n fill: 'solid',\n themeColor: 'primary',\n shape: 'circle',\n position: 'edge',\n align: { vertical: 'top', horizontal: 'end' },\n cutoutBorder: false\n};\nBadge.defaultProps = defaultProps;\nBadge.displayName = 'KendoBadge';\n","var __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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, useDir } from '@progress/kendo-react-common';\n/**\n * Represents the [KendoReact BadgeContainer component]({% slug overview_badge %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * \n * \n * \n * \n * \n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var BadgeContainer = React.forwardRef(function (props, target) {\n var children = props.children, className = props.className, style = props.style;\n var elementRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n React.useImperativeHandle(target, function () { return ({\n element: elementRef.current,\n focus: focusElement\n }); });\n var dir = useDir(elementRef, props.dir);\n var containerClasses = React.useMemo(function () { return classNames('k-badge-container', className); }, [className]);\n var containerStyles = React.useMemo(function () { return (__assign({ display: 'inline-block' }, style)); }, [style]);\n return (React.createElement(\"span\", { className: containerClasses, style: containerStyles, dir: dir }, children));\n});\nBadgeContainer.propTypes = {\n className: PropTypes.string,\n dir: PropTypes.string,\n style: PropTypes.object\n};\nBadgeContainer.displayName = 'KendoBadgeContainer';\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nvar SEGMENT_COUNT = {\n 'pulsing': 2,\n 'infinite-spinner': 3,\n 'converging-spinner': 4\n};\nvar TYPE_CLASSES = {\n 'pulsing': 'k-loader-pulsing-2',\n 'infinite-spinner': 'k-loader-spinner-3',\n 'converging-spinner': 'k-loader-spinner-4'\n};\n/**\n * Represents the [KendoReact Loader component]({% slug overview_Loader %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var Loader = React.forwardRef(function (props, target) {\n validatePackage(packageMetadata);\n var className = props.className, style = props.style;\n var elementRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n React.useImperativeHandle(target, function () { return ({\n element: elementRef.current,\n focus: focusElement\n }); });\n var size = React.useMemo(function () { return props.size || defaultProps.size; }, [props.size]);\n var themeColor = React.useMemo(function () { return props.themeColor || defaultProps.themeColor; }, [props.themeColor]);\n var type = React.useMemo(function () { return props.type || defaultProps.type; }, [props.type]);\n var LoaderClasses = React.useMemo(function () { return classNames('k-loader', {\n 'k-loader-sm': size === 'small',\n 'k-loader-md': size === 'medium',\n 'k-loader-lg': size === 'large',\n 'k-loader-primary': themeColor === 'primary',\n 'k-loader-secondary': themeColor === 'secondary',\n 'k-loader-tertiary': themeColor === 'tertiary',\n 'k-loader-info': themeColor === 'info',\n 'k-loader-success': themeColor === 'success',\n 'k-loader-warning': themeColor === 'warning',\n 'k-loader-error': themeColor === 'error',\n 'k-loader-dark': themeColor === 'dark',\n 'k-loader-light': themeColor === 'light',\n 'k-loader-inverse': themeColor === 'inverse'\n }, className, TYPE_CLASSES[type]); }, [\n size, themeColor, className, type\n ]);\n var spans = new Array(SEGMENT_COUNT[type]);\n spans.fill(0, 0, SEGMENT_COUNT[type]);\n return (React.createElement(\"div\", { className: LoaderClasses, style: style },\n React.createElement(\"div\", { className: \"k-loader-canvas\" }, spans.map(function (_, i) { return React.createElement(\"span\", { key: i, className: \"k-loader-segment\" }); }))));\n});\nLoader.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n type: PropTypes.oneOf([\n 'pulsing',\n 'infinite-spinner',\n 'converging-spinner'\n ]),\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n themeColor: PropTypes.oneOf([\n 'primary', 'secondary', 'tertiary',\n 'info', 'success', 'warning',\n 'error', 'dark', 'light', 'inverse'\n ])\n};\nvar defaultProps = {\n size: 'medium',\n themeColor: 'primary',\n type: 'pulsing'\n};\nLoader.defaultProps = defaultProps;\nLoader.displayName = 'KendoLoader';\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the [KendoReact Skeleton component]({% slug overview_skeleton %}).\n *\n * @example\n * ```jsx\n * const App = () => {\n * return (\n * \n * );\n * };\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var Skeleton = React.forwardRef(function (props, target) {\n validatePackage(packageMetadata);\n var className = props.className, style = props.style;\n var elementRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n React.useImperativeHandle(target, function () { return ({\n element: elementRef.current,\n focus: focusElement\n }); });\n var shape = React.useMemo(function () { return props.shape || defaultProps.shape; }, [props.shape]);\n var animation = React.useMemo(function () {\n if (props.animation === false) {\n return false;\n }\n else {\n return props.animation || defaultProps.animation;\n }\n }, [props.animation]);\n var skeletonClasses = React.useMemo(function () { return classNames('k-skeleton', {\n 'k-skeleton-circle': shape === 'circle',\n 'k-skeleton-rectangle': shape === 'rectangle',\n 'k-skeleton-text': shape === 'text',\n 'k-skeleton-pulse': (typeof animation === 'object' && animation.type === 'pulse'),\n 'k-skeleton-wave': (typeof animation === 'object' && animation.type === 'wave') || (animation === true)\n }, className); }, [shape, animation, className]);\n return (React.createElement(\"span\", { ref: elementRef, className: skeletonClasses, style: style }));\n});\nSkeleton.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n animation: PropTypes.shape({\n type: PropTypes.oneOf(['wave', 'pulse'])\n }),\n shape: PropTypes.oneOf(['circle', 'rectangle', 'text'])\n};\nvar defaultProps = {\n shape: 'text',\n animation: { type: 'pulse' }\n};\nSkeleton.defaultProps = defaultProps;\nSkeleton.displayName = 'KendoSkeleton';\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-inputs',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584443,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","/**\n * @hidden\n */\nexport var isPresent = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n *\n * Fits the contender number into the specified bounds.\n * If the number is NaN or null, the minimum is returned.\n *\n * @param contender Represents the number you want to fit into the specified bounds.\n * @param min The inclusive lower bound number.\n * @param max The inclusive upper bound number.\n */\nexport var fitIntoBounds = function (contender, min, max) {\n if (!isPresent(contender) || isNaN(contender)) {\n return min;\n }\n return contender <= min ? min : contender >= max ? max : contender;\n};\n","var Class = function Class () {};\n\nexport default Class;\n","function matchUserAgent(userAgent) {\n var browserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+))/i\n };\n\n var browser = {};\n\n for (var agent in browserRxs) {\n if (browserRxs.hasOwnProperty(agent)) {\n var match = userAgent.match(browserRxs[agent]);\n if (match) {\n browser[agent] = true;\n browser[match[1].toLowerCase().split(\" \")[0].split(\"/\")[0]] = true;\n browser.version = parseInt(document.documentMode || match[2], 10);\n\n break;\n }\n }\n }\n\n return browser;\n}\n\nvar browser = null;\n\nvar support = {\n get browser() {\n if (typeof window === 'undefined' || browser) {\n return browser;\n }\n\n browser = matchUserAgent(window.navigator.userAgent);\n return browser;\n }\n};\n\nexport default support;\n","var namedColors = {\n aliceblue: \"f0f8ff\", antiquewhite: \"faebd7\", aqua: \"00ffff\",\n aquamarine: \"7fffd4\", azure: \"f0ffff\", beige: \"f5f5dc\",\n bisque: \"ffe4c4\", black: \"000000\", blanchedalmond: \"ffebcd\",\n blue: \"0000ff\", blueviolet: \"8a2be2\", brown: \"a52a2a\",\n burlywood: \"deb887\", cadetblue: \"5f9ea0\", chartreuse: \"7fff00\",\n chocolate: \"d2691e\", coral: \"ff7f50\", cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\", crimson: \"dc143c\", cyan: \"00ffff\",\n darkblue: \"00008b\", darkcyan: \"008b8b\", darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\", darkgrey: \"a9a9a9\", darkgreen: \"006400\",\n darkkhaki: \"bdb76b\", darkmagenta: \"8b008b\", darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\", darkorchid: \"9932cc\", darkred: \"8b0000\",\n darksalmon: \"e9967a\", darkseagreen: \"8fbc8f\", darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\", darkslategrey: \"2f4f4f\", darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\", deeppink: \"ff1493\", deepskyblue: \"00bfff\",\n dimgray: \"696969\", dimgrey: \"696969\", dodgerblue: \"1e90ff\",\n firebrick: \"b22222\", floralwhite: \"fffaf0\", forestgreen: \"228b22\",\n fuchsia: \"ff00ff\", gainsboro: \"dcdcdc\", ghostwhite: \"f8f8ff\",\n gold: \"ffd700\", goldenrod: \"daa520\", gray: \"808080\",\n grey: \"808080\", green: \"008000\", greenyellow: \"adff2f\",\n honeydew: \"f0fff0\", hotpink: \"ff69b4\", indianred: \"cd5c5c\",\n indigo: \"4b0082\", ivory: \"fffff0\", khaki: \"f0e68c\",\n lavender: \"e6e6fa\", lavenderblush: \"fff0f5\", lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\", lightblue: \"add8e6\", lightcoral: \"f08080\",\n lightcyan: \"e0ffff\", lightgoldenrodyellow: \"fafad2\", lightgray: \"d3d3d3\",\n lightgrey: \"d3d3d3\", lightgreen: \"90ee90\", lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\", lightseagreen: \"20b2aa\", lightskyblue: \"87cefa\",\n lightslategray: \"778899\", lightslategrey: \"778899\", lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\", lime: \"00ff00\", limegreen: \"32cd32\",\n linen: \"faf0e6\", magenta: \"ff00ff\", maroon: \"800000\",\n mediumaquamarine: \"66cdaa\", mediumblue: \"0000cd\", mediumorchid: \"ba55d3\",\n mediumpurple: \"9370d8\", mediumseagreen: \"3cb371\", mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\", mediumturquoise: \"48d1cc\", mediumvioletred: \"c71585\",\n midnightblue: \"191970\", mintcream: \"f5fffa\", mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\", navajowhite: \"ffdead\", navy: \"000080\",\n oldlace: \"fdf5e6\", olive: \"808000\", olivedrab: \"6b8e23\",\n orange: \"ffa500\", orangered: \"ff4500\", orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\", palegreen: \"98fb98\", paleturquoise: \"afeeee\",\n palevioletred: \"d87093\", papayawhip: \"ffefd5\", peachpuff: \"ffdab9\",\n peru: \"cd853f\", pink: \"ffc0cb\", plum: \"dda0dd\",\n powderblue: \"b0e0e6\", purple: \"800080\", red: \"ff0000\",\n rosybrown: \"bc8f8f\", royalblue: \"4169e1\", saddlebrown: \"8b4513\",\n salmon: \"fa8072\", sandybrown: \"f4a460\", seagreen: \"2e8b57\",\n seashell: \"fff5ee\", sienna: \"a0522d\", silver: \"c0c0c0\",\n skyblue: \"87ceeb\", slateblue: \"6a5acd\", slategray: \"708090\",\n slategrey: \"708090\", snow: \"fffafa\", springgreen: \"00ff7f\",\n steelblue: \"4682b4\", tan: \"d2b48c\", teal: \"008080\",\n thistle: \"d8bfd8\", tomato: \"ff6347\", turquoise: \"40e0d0\",\n violet: \"ee82ee\", wheat: \"f5deb3\", white: \"ffffff\",\n whitesmoke: \"f5f5f5\", yellow: \"ffff00\", yellowgreen: \"9acd32\"\n};\n\nexport default namedColors;","import Class from '../class';\nimport support from '../support';\nimport namedColors from './named-colors';\n\nvar browser = support.browser;\n\nvar matchNamedColor = function (color) {\n var colorNames = Object.keys(namedColors);\n colorNames.push(\"transparent\");\n\n var regexp = new RegExp(\"^(\" + colorNames.join(\"|\") + \")(\\\\W|$)\", \"i\");\n matchNamedColor = function (color) { return regexp.exec(color); };\n\n return regexp.exec(color);\n};\n\nvar BaseColor = (function (Class) {\n function BaseColor() { Class.call(this); }\n\n if ( Class ) BaseColor.__proto__ = Class;\n BaseColor.prototype = Object.create( Class && Class.prototype );\n BaseColor.prototype.constructor = BaseColor;\n BaseColor.prototype.toHSV = function toHSV () { return this; };\n\n BaseColor.prototype.toRGB = function toRGB () { return this; };\n\n BaseColor.prototype.toHex = function toHex (options) { return this.toBytes().toHex(options); };\n\n BaseColor.prototype.toBytes = function toBytes () { return this; };\n\n BaseColor.prototype.toCss = function toCss (options) { return \"#\" + this.toHex(options); };\n\n BaseColor.prototype.toCssRgba = function toCssRgba () {\n var rgb = this.toBytes();\n return (\"rgba(\" + (rgb.r) + \", \" + (rgb.g) + \", \" + (rgb.b) + \", \" + (parseFloat((Number(this.a)).toFixed(3))) + \")\");\n };\n\n BaseColor.prototype.toDisplay = function toDisplay () {\n if (browser.msie && browser.version < 9) {\n return this.toCss(); // no RGBA support; does it support any opacity in colors?\n }\n return this.toCssRgba();\n };\n\n BaseColor.prototype.equals = function equals (c) {\n return c === this || c !== null && this.toCssRgba() === parseColor(c).toCssRgba();\n };\n\n BaseColor.prototype.diff = function diff (other) {\n if (other === null) {\n return NaN;\n }\n\n var c1 = this.toBytes();\n var c2 = other.toBytes();\n\n return Math.sqrt(Math.pow((c1.r - c2.r) * 0.30, 2) +\n Math.pow((c1.g - c2.g) * 0.59, 2) +\n Math.pow((c1.b - c2.b) * 0.11, 2));\n };\n\n BaseColor.prototype.clone = function clone () {\n var c = this.toBytes();\n if (c === this) {\n c = new Bytes(c.r, c.g, c.b, c.a);\n }\n\n return c;\n };\n\n return BaseColor;\n}(Class));\n\nvar RGB = (function (BaseColor) {\n function RGB(r, g, b, a) {\n BaseColor.call(this);\n\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n }\n\n if ( BaseColor ) RGB.__proto__ = BaseColor;\n RGB.prototype = Object.create( BaseColor && BaseColor.prototype );\n RGB.prototype.constructor = RGB;\n\n RGB.prototype.toHSV = function toHSV () {\n var ref = this;\n var r = ref.r;\n var g = ref.g;\n var b = ref.b;\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var delta = max - min;\n var v = max;\n var h, s;\n\n if (delta === 0) {\n return new HSV(0, 0, v, this.a);\n }\n\n if (max !== 0) {\n s = delta / max;\n if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else {\n h = 4 + (r - g) / delta;\n }\n\n h *= 60;\n if (h < 0) {\n h += 360;\n }\n } else {\n s = 0;\n h = -1;\n }\n\n return new HSV(h, s, v, this.a);\n };\n\n RGB.prototype.toHSL = function toHSL () {\n var ref = this;\n var r = ref.r;\n var g = ref.g;\n var b = ref.b;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n default: break;\n }\n }\n\n return new HSL(h * 60, s * 100, l * 100, this.a);\n };\n\n RGB.prototype.toBytes = function toBytes () {\n return new Bytes(this.r * 255, this.g * 255, this.b * 255, this.a);\n };\n\n return RGB;\n}(BaseColor));\n\nvar Bytes = (function (RGB) {\n function Bytes(r, g, b, a) {\n RGB.call(this, Math.round(r), Math.round(g), Math.round(b), a);\n }\n\n if ( RGB ) Bytes.__proto__ = RGB;\n Bytes.prototype = Object.create( RGB && RGB.prototype );\n Bytes.prototype.constructor = Bytes;\n\n Bytes.prototype.toRGB = function toRGB () {\n return new RGB(this.r / 255, this.g / 255, this.b / 255, this.a);\n };\n\n Bytes.prototype.toHSV = function toHSV () {\n return this.toRGB().toHSV();\n };\n\n Bytes.prototype.toHSL = function toHSL () {\n return this.toRGB().toHSL();\n };\n\n Bytes.prototype.toHex = function toHex (options) {\n var value = hex(this.r, 2) + hex(this.g, 2) + hex(this.b, 2);\n\n if (options && options.alpha) {\n value += hex(Math.round(this.a * 255), 2);\n }\n\n return value;\n };\n\n Bytes.prototype.toBytes = function toBytes () {\n return this;\n };\n\n return Bytes;\n}(RGB));\n\nfunction hex(n, width, pad) {\n if ( pad === void 0 ) pad = \"0\";\n\n var result = n.toString(16);\n while (width > result.length) {\n result = pad + result;\n }\n\n return result;\n}\n\nvar HSV = (function (BaseColor) {\n function HSV(h, s, v, a) {\n BaseColor.call(this);\n\n this.h = h;\n this.s = s;\n this.v = v;\n this.a = a;\n }\n\n if ( BaseColor ) HSV.__proto__ = BaseColor;\n HSV.prototype = Object.create( BaseColor && BaseColor.prototype );\n HSV.prototype.constructor = HSV;\n\n HSV.prototype.toRGB = function toRGB () {\n var ref = this;\n var h = ref.h;\n var s = ref.s;\n var v = ref.v;\n var r, g, b;\n\n if (s === 0) {\n r = g = b = v;\n } else {\n h /= 60;\n\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - s * f);\n var t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0: r = v; g = t; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = t; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = t; g = p; b = v; break;\n default: r = v; g = p; b = q; break;\n }\n }\n\n return new RGB(r, g, b, this.a);\n };\n\n HSV.prototype.toHSL = function toHSL () {\n return this.toRGB().toHSL();\n };\n\n HSV.prototype.toBytes = function toBytes () {\n return this.toRGB().toBytes();\n };\n\n return HSV;\n}(BaseColor));\n\nvar HSL = (function (BaseColor) {\n function HSL(h, s, l, a) {\n BaseColor.call(this);\n\n this.h = h;\n this.s = s;\n this.l = l;\n this.a = a;\n }\n\n if ( BaseColor ) HSL.__proto__ = BaseColor;\n HSL.prototype = Object.create( BaseColor && BaseColor.prototype );\n HSL.prototype.constructor = HSL;\n\n HSL.prototype.toRGB = function toRGB () {\n var h = this.h / 360;\n var s = this.s / 100;\n var l = this.l / 100;\n var r, g, b;\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return new RGB(r, g, b, this.a);\n };\n\n HSL.prototype.toHSV = function toHSV () {\n return this.toRGB().toHSV();\n };\n\n HSL.prototype.toBytes = function toBytes () {\n return this.toRGB().toBytes();\n };\n\n return HSL;\n}(BaseColor));\n\nfunction hue2rgb(p, q, s) {\n var t = s;\n\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n}\n\nfunction alphaFromHex(a) {\n return parseFloat(parseFloat(parseInt(a, 16) / 255 ).toFixed(3));\n}\n\nexport { RGB, Bytes, HSV, HSL };\n\nexport default function parseColor(value, safe) {\n var m, ret;\n\n if (value == null || value === \"none\") {\n return null;\n }\n\n if (value instanceof BaseColor) {\n return value;\n }\n\n var color = value.toLowerCase();\n if ((m = matchNamedColor(color))) {\n if (m[1] === \"transparent\") {\n color = new RGB(1, 1, 1, 0);\n } else {\n color = parseColor(namedColors[m[1]], safe);\n }\n color.match = [ m[1] ];\n return color;\n }\n if ((m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\\b/i.exec(color))) {\n ret = new Bytes(parseInt(m[1], 16),\n parseInt(m[2], 16),\n parseInt(m[3], 16), 1);\n } else if ((m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])\\b/i.exec(color))) {\n ret = new Bytes(parseInt(m[1] + m[1], 16),\n parseInt(m[2] + m[2], 16),\n parseInt(m[3] + m[3], 16), 1);\n } else if ((m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])\\b/i.exec(color))) { // Parse 4 digit hex color\n ret = new Bytes(parseInt(m[1] + m[1], 16),\n parseInt(m[2] + m[2], 16),\n parseInt(m[3] + m[3], 16),\n alphaFromHex(m[4] + m[4]));\n } else if ((m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\\b/i.exec(color))) { // Parse 8 digit hex color\n ret = new Bytes(parseInt(m[1], 16),\n parseInt(m[2], 16),\n parseInt(m[3], 16),\n alphaFromHex(m[4]));\n } else if ((m = /^rgb\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/.exec(color))) {\n ret = new Bytes(parseInt(m[1], 10),\n parseInt(m[2], 10),\n parseInt(m[3], 10), 1);\n } else if ((m = /^rgba\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color))) {\n ret = new Bytes(parseInt(m[1], 10),\n parseInt(m[2], 10),\n parseInt(m[3], 10), parseFloat(m[4]));\n } else if ((m = /^rgb\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*\\)/.exec(color))) {\n ret = new RGB(parseFloat(m[1]) / 100,\n parseFloat(m[2]) / 100,\n parseFloat(m[3]) / 100, 1);\n } else if ((m = /^rgba\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color))) {\n ret = new RGB(parseFloat(m[1]) / 100,\n parseFloat(m[2]) / 100,\n parseFloat(m[3]) / 100, parseFloat(m[4]));\n }\n\n if (ret) {\n ret.match = m;\n } else if (!safe) {\n throw new Error(\"Cannot parse color: \" + color);\n }\n\n return ret;\n}\n","import Class from '../class';\nimport namedColors from './named-colors';\nimport { Bytes, RGB, HSV, HSL } from './parse-color';\n\nvar DARK_TRESHOLD = 180;\n\nvar Color = (function (Class) {\n function Color(value) {\n var this$1 = this;\n\n Class.call(this);\n\n if (arguments.length === 1) {\n var formats = Color.formats;\n var resolvedColor = this.resolveColor(value);\n\n for (var idx = 0; idx < formats.length; idx++) {\n var formatRegex = formats[idx].re;\n var processor = formats[idx].process;\n var parts = formatRegex.exec(resolvedColor);\n\n if (parts) {\n var channels = processor(parts);\n this$1.r = channels[0];\n this$1.g = channels[1];\n this$1.b = channels[2];\n }\n }\n } else {\n this.r = arguments[0];\n this.g = arguments[1];\n this.b = arguments[2];\n }\n\n this.r = this.normalizeByte(this.r);\n this.g = this.normalizeByte(this.g);\n this.b = this.normalizeByte(this.b);\n }\n\n if ( Class ) Color.__proto__ = Class;\n Color.prototype = Object.create( Class && Class.prototype );\n Color.prototype.constructor = Color;\n\n Color.prototype.toHex = function toHex () {\n var pad = this.padDigit;\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n\n return \"#\" + pad(r) + pad(g) + pad(b);\n };\n\n Color.prototype.resolveColor = function resolveColor (value) {\n var color = value || \"black\";\n\n if (color.charAt(0) === \"#\") {\n color = color.substr(1, 6);\n }\n\n color = color.replace(/ /g, \"\");\n color = color.toLowerCase();\n color = Color.namedColors[color] || color;\n\n return color;\n };\n\n Color.prototype.normalizeByte = function normalizeByte (value) {\n if (value < 0 || isNaN(value)) {\n return 0;\n }\n\n return value > 255 ? 255 : value;\n };\n\n Color.prototype.padDigit = function padDigit (value) {\n return (value.length === 1) ? \"0\" + value : value;\n };\n\n Color.prototype.brightness = function brightness (value) {\n var round = Math.round;\n\n this.r = round(this.normalizeByte(this.r * value));\n this.g = round(this.normalizeByte(this.g * value));\n this.b = round(this.normalizeByte(this.b * value));\n\n return this;\n };\n\n Color.prototype.percBrightness = function percBrightness () {\n return Math.sqrt(0.241 * this.r * this.r + 0.691 * this.g * this.g + 0.068 * this.b * this.b);\n };\n\n Color.prototype.isDark = function isDark () {\n return this.percBrightness() < DARK_TRESHOLD;\n };\n\n Color.fromBytes = function fromBytes (r, g, b, a) {\n return new Bytes(r, g, b, a != null ? a : 1);\n };\n\n Color.fromRGB = function fromRGB (r, g, b, a) {\n return new RGB(r, g, b, a != null ? a : 1);\n };\n\n Color.fromHSV = function fromHSV (h, s, v, a) {\n return new HSV(h, s, v, a != null ? a : 1);\n };\n\n Color.fromHSL = function fromHSL (h, s, l, a) {\n return new HSL(h, s, l, a != null ? a : 1);\n };\n\n return Color;\n}(Class));\n\nColor.formats = [ {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n process: function(parts) {\n return [\n parseInt(parts[1], 10), parseInt(parts[2], 10), parseInt(parts[3], 10)\n ];\n }\n}, {\n re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n process: function(parts) {\n return [\n parseInt(parts[1], 16), parseInt(parts[2], 16), parseInt(parts[3], 16)\n ];\n }\n}, {\n re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n process: function(parts) {\n return [\n parseInt(parts[1] + parts[1], 16),\n parseInt(parts[2] + parts[2], 16),\n parseInt(parts[3] + parts[3], 16)\n ];\n }\n} ];\n\nColor.namedColors = namedColors;\n\nexport default Color;","import { parseColor as parse, Color } from '@progress/kendo-drawing';\nimport { isPresent, fitIntoBounds } from './misc';\n/**\n * @hidden\n *\n * Returns the hex or RGBA string representation of the color.\n */\nexport var parseColor = function (value, format, safe) {\n if (safe === void 0) { safe = true; }\n var allowedFormats = ['hex', 'rgba']; // TODO: constant?\n // Angular supports third type: name : const allowedFormats: Array = ['hex', 'rgba', 'name'];\n if (allowedFormats.indexOf(format) === -1) {\n throw new Error(\"Unsupported color output format '\" + format + \"'. The available options are 'hex' or 'rgba'.\");\n }\n if (!isPresent(value)) {\n return;\n }\n var parsedColor = parse(value.trim(), safe);\n if (!isPresent(parsedColor)) {\n return;\n }\n return format === 'hex' ? parsedColor.toCss() : parsedColor.toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns an HSV object representation of the color string.\n */\nexport var getHSV = function (value, safe) {\n if (safe === void 0) { safe = true; }\n var parsed = parse(value, safe);\n if (!isPresent(parsed)) {\n return {};\n }\n return parsed.toHSV();\n};\n/**\n * @hidden\n *\n * Returns an RGBA object representation of the color string.\n */\nexport var getRGBA = function (value, safe) {\n if (safe === void 0) { safe = true; }\n var parsed = parse(value, safe);\n if (!isPresent(parsed)) {\n return {};\n }\n return parsed.toBytes();\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color.\n */\nexport var getColorFromHSV = function (hsva) {\n var hue = fitIntoBounds(hsva.h, 0, 359.9);\n var saturation = fitIntoBounds(hsva.s, 0, 1);\n var value = fitIntoBounds(hsva.v, 0, 1);\n var alpha = fitIntoBounds(hsva.a, 0, 1);\n return Color.fromHSV(hue, saturation, value, alpha).toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color based on the `hue` and\n * assuming the `value`, `saturation`, and `alpha` have a value of `1`.\n */\nexport var getColorFromHue = function (hue) {\n return getColorFromHSV({ h: hue, s: 1, v: 1, a: 1 });\n};\n/**\n * @hidden\n *\n * Returns the RGBA string representation of the color.\n */\nexport var getColorFromRGBA = function (rgba) {\n var red = fitIntoBounds(rgba.r, 0, 255);\n var green = fitIntoBounds(rgba.g, 0, 255);\n var blue = fitIntoBounds(rgba.b, 0, 255);\n var alpha = fitIntoBounds(rgba.a, 0, 1);\n return Color.fromBytes(red, green, blue, alpha).toCssRgba();\n};\n/**\n * @hidden\n *\n * Returns the RGB object representation of the color based on the background color.\n */\nexport var getRGBFromRGBA = function (foregroundColor, backgroundColor) {\n var r1 = fitIntoBounds(foregroundColor.r, 0, 255);\n var g1 = fitIntoBounds(foregroundColor.g, 0, 255);\n var b1 = fitIntoBounds(foregroundColor.b, 0, 255);\n var a1 = fitIntoBounds(foregroundColor.a, 0, 1);\n var r2 = fitIntoBounds(backgroundColor.r, 0, 255);\n var g2 = fitIntoBounds(backgroundColor.g, 0, 255);\n var b2 = fitIntoBounds(backgroundColor.b, 0, 255);\n return {\n r: Math.round(((1 - a1) * r2) + (a1 * r1)),\n g: Math.round(((1 - a1) * g2) + (a1 * g1)),\n b: Math.round(((1 - a1) * b2) + (a1 * b1))\n };\n};\n/**\n * @hidden\n *\n * Returns the relative luminance.\n */\nexport var getLuminance = function (rgb) {\n var a = [rgb.r, rgb.g, rgb.b].map(function (v) {\n v /= 255;\n return v <= 0.03928\n ? v / 12.92\n : Math.pow((v + 0.055) / 1.055, 2.4);\n });\n return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;\n};\n/**\n * @hidden\n *\n * Returns the color contrast.\n */\nexport var getContrast = function (luminance1, luminance2) {\n var brightest = Math.max(luminance1, luminance2);\n var darkest = Math.min(luminance1, luminance2);\n return (brightest + 0.05)\n / (darkest + 0.05);\n};\n/**\n * @hidden\n *\n * Returns the color contrast from two RGBA colors.\n */\nexport var getContrastFromTwoRGBAs = function (a, b) {\n return getContrast(getLuminance(getRGBFromRGBA(a, b)), getLuminance(getRGBFromRGBA(b, { r: 0, g: 0, b: 0, a: 1 })));\n};\n","var cache = {};\n/**\n * @hidden\n */\nexport function cacheHsva(componentGuid, value, hsva) {\n cache[componentGuid] = { value: value, hsva: hsva };\n}\n/**\n * @hidden\n */\nexport function cacheRgba(componentGuid, value, rgba) {\n cache[componentGuid] = { value: value, rgba: rgba };\n}\n/**\n * @hidden\n */\nexport function cacheHex(componentGuid, value, hex) {\n cache[componentGuid] = { value: value, hex: hex };\n}\n/**\n * @hidden\n */\nexport function removeCachedColor(componentGuid) {\n delete cache[componentGuid];\n}\n/**\n * @hidden\n */\nexport function getCachedHex(componentGuid, value) {\n if (componentGuid) {\n var cachedColor = cache[componentGuid];\n return cachedColor && cachedColor.value === value ? cachedColor.hex : undefined;\n }\n else {\n return undefined;\n }\n}\n/**\n * @hidden\n */\nexport function getCachedHsva(componentGuid, value) {\n if (componentGuid) {\n var cachedColor = cache[componentGuid];\n return cachedColor && cachedColor.value === value ? cachedColor.hsva : undefined;\n }\n else {\n return undefined;\n }\n}\n/**\n * @hidden\n */\nexport function getCachedRgba(componentGuid, value) {\n if (componentGuid) {\n var cachedColor = cache[componentGuid];\n return cachedColor && cachedColor.value === value ? cachedColor.rgba : undefined;\n }\n else {\n return undefined;\n }\n}\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { parseColor } from './utils/color-parser';\nimport { isPresent } from './utils/misc';\n/**\n * @hidden\n */\nvar HexInput = /** @class */ (function (_super) {\n __extends(HexInput, _super);\n function HexInput(props) {\n var _this = _super.call(this, props) || this;\n _this.onChange = function (event) {\n var hex = event.target.value;\n var value = parseColor(hex, 'rgba');\n _this.setState({ hex: hex });\n if (isPresent(value)) {\n _this.props.onHexChange(hex, value, event);\n }\n };\n _this.onBlur = function () {\n if (!isPresent(parseColor(_this.state.hex, 'rgba'))) {\n _this.setState({ hex: _this.state.originalHex });\n }\n };\n _this.state = { hex: _this.props.hex, originalHex: _this.props.hex };\n return _this;\n }\n HexInput.prototype.render = function () {\n return (React.createElement(\"input\", { value: this.state.hex, className: \"k-input\", onChange: this.onChange, onBlur: this.onBlur, disabled: this.props.disabled }));\n };\n HexInput.getDerivedStateFromProps = function (props, state) {\n if (props.hex !== state.originalHex) {\n return { hex: props.hex, originalHex: props.hex };\n }\n return null;\n };\n return HexInput;\n}(React.Component));\nexport default HexInput;\n","var _a;\n/**\n * @hidden\n */\nexport var numericIncreaseValue = 'numerictextbox.increment';\n/**\n * @hidden\n */\nexport var numericDecreaseValue = 'numerictextbox.decrement';\n/**\n * @hidden\n */\nexport var sliderIncreaseValue = 'slider.increment';\n/**\n * @hidden\n */\nexport var sliderDecreaseValue = 'slider.decrement';\n/**\n * @hidden\n */\nexport var sliderDragTitle = 'slider.dragTitle';\n/**\n * @hidden\n */\nexport var colorGradientR = 'colorGradient.r';\n/**\n * @hidden\n */\nexport var colorGradientG = 'colorGradient.g';\n/**\n * @hidden\n */\nexport var colorGradientB = 'colorGradient.b';\n/**\n * @hidden\n */\nexport var colorGradientA = 'colorGradient.a';\n/**\n * @hidden\n */\nexport var colorGradientHex = 'colorGradient.hex';\n/**\n * @hidden\n */\nexport var colorGradientContrastRatio = 'colorGradient.contrastRatio';\n/**\n * @hidden\n */\nexport var colorGradientAALevel = 'colorGradient.colorGradientAALevel';\n/**\n * @hidden\n */\nexport var colorGradientAAALevel = 'colorGradient.colorGradientAAALevel';\n/**\n * @hidden\n */\nexport var colorGradientPass = 'colorGradient.colorGradientPass';\n/**\n * @hidden\n */\nexport var colorGradientFail = 'colorGradient.colorGradientFail';\n/**\n * @hidden\n */\nexport var flatColorPickerCancelBtn = 'flatColorPicker.cancelBtn';\n/**\n * @hidden\n */\nexport var flatColorPickerApplyBtn = 'flatColorPicker.applyBtn';\n/**\n * @hidden\n */\nexport var checkboxValidation = 'checkbox.validation';\n/**\n * @hidden\n */\nexport var checkboxOptionalText = 'checkbox.optionalText';\n/**\n * @hidden\n */\nexport var radioButtonValidation = 'radioButton.validation';\n/**\n * @hidden\n */\nexport var switchValidation = 'switch.validation';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[numericIncreaseValue] = 'Increase value',\n _a[numericDecreaseValue] = 'Decrease value',\n _a[sliderIncreaseValue] = 'Increase',\n _a[sliderDecreaseValue] = 'Decrease',\n _a[sliderDragTitle] = 'Drag',\n _a[colorGradientR] = 'r',\n _a[colorGradientG] = 'g',\n _a[colorGradientB] = 'b',\n _a[colorGradientA] = 'a',\n _a[colorGradientHex] = 'hex',\n _a[colorGradientContrastRatio] = 'Contrast ratio',\n _a[colorGradientAALevel] = 'AA',\n _a[colorGradientAAALevel] = 'AAA',\n _a[colorGradientPass] = 'Pass',\n _a[colorGradientFail] = 'Fail',\n _a[flatColorPickerCancelBtn] = 'Cancel',\n _a[flatColorPickerApplyBtn] = 'Apply',\n _a[checkboxValidation] = 'Please check this box if you want to proceed!',\n _a[checkboxOptionalText] = '(Optional)',\n _a[radioButtonValidation] = 'Please select option if you want to proceed!',\n _a[switchValidation] = 'Please turn on if you want to proceed!',\n _a);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport { NumericTextBox } from '../main';\nimport HexInput from './HexInput';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { Label } from '@progress/kendo-react-labels';\nimport { registerForIntl, registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, colorGradientR, colorGradientHex, colorGradientA, colorGradientB, colorGradientG } from '../messages';\n/**\n * @hidden\n */\nvar modes = ['rgba', 'rgb', 'hex'];\n/**\n * @hidden\n */\nvar ColorInput = /** @class */ (function (_super) {\n __extends(ColorInput, _super);\n function ColorInput() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n inputMode: modes[1]\n };\n _this.onRgbaRChange = function (event) {\n _this.dispatchRgbaChange({ r: event.value }, event);\n };\n _this.onRgbaGChange = function (event) {\n _this.dispatchRgbaChange({ g: event.value }, event);\n };\n _this.onRgbaBChange = function (event) {\n _this.dispatchRgbaChange({ b: event.value }, event);\n };\n _this.onRgbaAChange = function (event) {\n _this.dispatchRgbaChange({ a: event.value }, event);\n };\n return _this;\n }\n ColorInput.prototype.render = function () {\n var localizationService = provideLocalizationService(this);\n var hexMessage = localizationService.toLanguageString(colorGradientR, messages[colorGradientHex]);\n var rMessage = localizationService.toLanguageString(colorGradientR, messages[colorGradientR]);\n var gMessage = localizationService.toLanguageString(colorGradientR, messages[colorGradientG]);\n var bMessage = localizationService.toLanguageString(colorGradientR, messages[colorGradientB]);\n var aMessage = localizationService.toLanguageString(colorGradientR, messages[colorGradientA]);\n return (React.createElement(\"div\", { className: \"k-colorgradient-inputs k-hstack\" },\n React.createElement(\"div\", { className: \"k-vstack\" },\n React.createElement(Button, { look: 'flat', icon: 'arrows-kpi', className: \"k-colorgradient-toggle-mode k-icon-button\", onClick: this.onToggleModeChange.bind(this) })),\n this.state.inputMode === 'hex' &&\n React.createElement(\"div\", { className: \"k-vstack k-flex-1\" },\n React.createElement(\"span\", { className: \"k-hex-value k-textbox\" },\n React.createElement(HexInput, { hex: this.props.hex, onHexChange: this.props.onHexChange, disabled: this.props.disabled })),\n React.createElement(Label, { className: \"k-colorgradient-input-label\" }, hexMessage)),\n (this.state.inputMode === 'rgb' || this.state.inputMode === 'rgba') &&\n React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"k-vstack\" },\n React.createElement(NumericTextBox, { value: this.props.rgba.r, min: 0, max: 255, spinners: false, format: \"n\", onChange: this.onRgbaRChange, disabled: this.props.disabled }),\n React.createElement(Label, { className: \"k-colorgradient-input-label\" }, rMessage)),\n React.createElement(\"div\", { className: \"k-vstack\" },\n React.createElement(NumericTextBox, { value: this.props.rgba.g, min: 0, max: 255, spinners: false, format: \"n\", onChange: this.onRgbaGChange, disabled: this.props.disabled }),\n React.createElement(Label, { className: \"k-colorgradient-input-label\" }, gMessage)),\n React.createElement(\"div\", { className: \"k-vstack\" },\n React.createElement(NumericTextBox, { value: this.props.rgba.b, min: 0, max: 255, spinners: false, format: \"n\", onChange: this.onRgbaBChange, disabled: this.props.disabled }),\n React.createElement(Label, { className: \"k-colorgradient-input-label\" }, bMessage))),\n this.state.inputMode === 'rgba' &&\n React.createElement(\"div\", { className: \"k-vstack\" },\n this.props.opacity &&\n React.createElement(NumericTextBox, { value: this.props.rgba.a, min: 0, max: 1, step: 0.01, spinners: false, format: \"n2\", onChange: this.onRgbaAChange, disabled: this.props.disabled }),\n this.props.opacity && (React.createElement(Label, { className: \"k-colorgradient-input-label\" }, aMessage)))));\n };\n ColorInput.prototype.dispatchRgbaChange = function (newValue, event) {\n var rgba = __assign({}, this.props.rgba);\n if (newValue.r !== undefined) {\n rgba.r = newValue.r;\n }\n if (newValue.g !== undefined) {\n rgba.g = newValue.g;\n }\n if (newValue.b !== undefined) {\n rgba.b = newValue.b;\n }\n if (newValue.a !== undefined) {\n rgba.a = newValue.a;\n }\n this.props.onRgbaChange(rgba, event);\n };\n ;\n ColorInput.prototype.onToggleModeChange = function () {\n var index = modes.length - 1 === modes.indexOf(this.state.inputMode) ? 0 : modes.indexOf(this.state.inputMode) + 1;\n if (!this.props.opacity) {\n var nextIndex = modes[index] === 'rgba' ? index + 1 : index;\n this.setState({ inputMode: modes[nextIndex] });\n }\n else {\n this.setState({ inputMode: modes[index] });\n }\n };\n return ColorInput;\n}(React.Component));\nexport default ColorInput;\nregisterForIntl(ColorInput);\nregisterForLocalization(ColorInput);\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, colorGradientContrastRatio, colorGradientAALevel, colorGradientAAALevel, colorGradientPass, colorGradientFail } from '../messages';\nimport { getContrastFromTwoRGBAs } from './utils/color-parser';\n/**\n * @hidden\n */\nvar ColorContrastLabels = /** @class */ (function (_super) {\n __extends(ColorContrastLabels, _super);\n function ColorContrastLabels() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColorContrastLabels.prototype.render = function () {\n var localizationService = provideLocalizationService(this);\n var contrastRatioMessage = localizationService.toLanguageString(colorGradientContrastRatio, messages[colorGradientContrastRatio]);\n var AALevelMessage = localizationService.toLanguageString(colorGradientAALevel, messages[colorGradientAALevel]);\n var AAALevelMessage = localizationService.toLanguageString(colorGradientAAALevel, messages[colorGradientAAALevel]);\n var passMessage = localizationService.toLanguageString(colorGradientPass, messages[colorGradientPass]);\n var failMessage = localizationService.toLanguageString(colorGradientFail, messages[colorGradientFail]);\n var contrast = getContrastFromTwoRGBAs(this.props.rgba, this.props.bgColor);\n var requiredAAContrast = (4.5).toFixed(1);\n var requiredAAAContrast = (7.0).toFixed(1);\n var contrastText = contrastRatioMessage + \": \" + contrast.toFixed(2);\n var aaText = AALevelMessage + \": \" + requiredAAContrast;\n var aaaText = AAALevelMessage + \": \" + requiredAAAContrast;\n var success = (React.createElement(\"span\", { className: \"k-contrast-validation k-text-success\" },\n passMessage,\n \" \",\n React.createElement(\"span\", { className: \"k-icon k-i-check\" })));\n var error = (React.createElement(\"span\", { className: \"k-contrast-validation k-text-error\" },\n failMessage,\n \" \",\n React.createElement(\"span\", { className: \"k-icon k-i-close\" })));\n return (React.createElement(\"div\", { className: \"k-vbox k-colorgradient-color-contrast\" },\n React.createElement(\"div\", { className: \"k-contrast-ratio\" },\n React.createElement(\"span\", { className: \"k-contrast-ratio-text\" }, contrastText),\n contrast >= 4.5 ? (React.createElement(\"span\", { className: \"k-contrast-validation k-text-success\" },\n React.createElement(\"span\", { className: \"k-icon k-i-check\" }),\n contrast >= 7 && React.createElement(\"span\", { className: \"k-icon k-i-check\" }))) : (React.createElement(\"span\", { className: \"k-contrast-validation k-text-error\" },\n React.createElement(\"span\", { className: \"k-icon k-i-close\" })))),\n React.createElement(\"div\", null,\n React.createElement(\"span\", null, aaText),\n contrast >= 4.5 ? success : error),\n React.createElement(\"div\", null,\n React.createElement(\"span\", null, aaaText),\n contrast >= 7 ? success : error)));\n };\n return ColorContrastLabels;\n}(React.Component));\nexport { ColorContrastLabels };\nregisterForLocalization(ColorContrastLabels);\n","/**\n * @hidden\n *\n * Render the svg element.\n *\n * @param points (array) Represents the points coordinates as an array of tuples.\n * @param command (function) The command that is used (bezierCommand, lineCommand).\n * @param point (array) [x,y] Represents the current point coordinates.\n * @param i (integer) Represents the index of 'point' in the array 'a'.\n * @param a (array) Represents the complete array of points coordinates.\n * @output (string) a svg path command.\n * @output (string) a Svg element\n */\nexport var svgPath = function (points, command) {\n if (points.length === 0) {\n return '';\n }\n // build the d attributes by looping over the points\n var d = points.reduce(function (acc, point, i, a) {\n return i === 0 ?\n // if first point\n \"M \" + point[0] + \",\" + point[1] :\n // else\n acc + \" \" + command(point, i, a);\n }, '');\n return \"\";\n};\n/**\n * @hidden\n *\n * Returns the properties of a line.\n *\n * @param pointA (array) [x,y] Represents the start point coordinates.\n * @param pointB (array) [x,y] Represents the end point coordinates.\n * @output (object) { length: (integer), angle: (integer) }\n */\nexport var line = function (pointA, pointB) {\n var lengthX = pointB[0] - pointA[0];\n var lengthY = pointB[1] - pointA[1];\n return {\n length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),\n angle: Math.atan2(lengthY, lengthX)\n };\n};\n/**\n * @hidden\n *\n * Create a function to calculate the position of the control point.\n *\n * @param lineCalc (function) Represents the line function.\n * @param pointA (array) [x,y] Represents the start point coordinates.\n * @param pointB (array) [x,y] Represents the end point coordinates.\n * @output (object) { length: (integer), angle: (integer) }\n * @output (function) closure.\n * @param current (array) [x, y] Represents the current point coordinates.\n * @param previous (array) [x, y] Represents the previous point coordinates.\n * @param next (array) [x, y] ]Represents the next point coordinates.\n * @param reverse (boolean, optional) Sets the direction.\n * @output (array) [x, y] coordinates of a control point.\n */\nexport var controlPoint = function (lineCalc) {\n return function (current, previous, next, reverse) {\n // when 'current' is the first or last point of the array\n // 'previous' and 'next' are undefined \n // replace with 'current'\n var p = previous || current;\n var n = next || current;\n var smooth = 0.1;\n // properties of the line between previous and next \n var l = lineCalc(p, n);\n // If is end-control-point, add PI to the angle to go backward\n var angle = l.angle + (reverse ? Math.PI : 0);\n var length = l.length * smooth;\n // The control point position is relative to the current point\n var x = current[0] + Math.cos(angle) * length;\n var y = current[1] + Math.sin(angle) * length;\n return [x, y];\n };\n};\n/**\n * @hidden\n *\n * Create a function to calculate a bezier curve command.\n *\n * @param controlPointCalc (function) Represents the controlPoint function.\n * @param current (array) [x, y] Represents the current point coordinates.\n * @param previous (array) [x, y] Represents the previous point coordinates.\n * @param next (array) [x, y] ]Represents the next point coordinates.\n * @param reverse (boolean, optional) Sets the direction.\n * @output (array) [x, y] coordinates of a control point.\n * @output (function) closure.\n * @param point (array) [x,y] Represents the current point coordinates.\n * @param i (integer) Represents the index of 'point' in the array 'a'.\n * @param a (array) Represents the complete array of points coordinates.\n * @output (string) 'C x2,y2 x1,y1 x,y' Cubic bezier command.\n */\nexport var bezierCommand = function (controlPointCalc) { return function (point, i, a) {\n // start control point\n var _a = controlPointCalc(a[i - 1], a[i - 2], point), cpsX = _a[0], cpsY = _a[1];\n // end control point\n var _b = controlPointCalc(point, a[i - 1], a[i + 1], true), cpeX = _b[0], cpeY = _b[1];\n return \"C \" + cpsX + \",\" + cpsY + \" \" + cpeX + \",\" + cpeY + \" \" + point[0] + \",\" + point[1];\n}; };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { bezierCommand, controlPoint, line, svgPath } from './utils/svg-calc';\nimport { getColorFromHSV, getRGBA, getContrastFromTwoRGBAs } from './utils/color-parser';\nvar AA_CONTRAST = 4.5;\nvar AAA_CONTRAST = 7;\nvar STEP_COUNT = 16;\n;\n/**\n * @hidden\n */\nvar ColorContrastSvg = /** @class */ (function (_super) {\n __extends(ColorContrastSvg, _super);\n function ColorContrastSvg() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColorContrastSvg.prototype.renderSvgCurveLine = function () {\n var _this = this;\n var gradientRectMetrics = this.props.metrics;\n var findValue = function (contrast, saturation, low, high, comparer) {\n var mid = (low + high) / 2;\n var hsva = Object.assign({}, _this.props.hsva, { s: saturation / gradientRectMetrics.width, v: 1 - mid / gradientRectMetrics.height });\n var currentContrast = getContrastFromTwoRGBAs(getRGBA(getColorFromHSV(hsva)), getRGBA(_this.props.backgroundColor || ''));\n if (low + 0.5 > high) {\n if (currentContrast < contrast + 1 && currentContrast > contrast - 1) {\n return mid;\n }\n else {\n return null;\n }\n }\n if (comparer(currentContrast, contrast)) {\n return findValue(contrast, saturation, low, high - (high - low) / 2, comparer);\n }\n return findValue(contrast, saturation, low + (high - low) / 2, high, comparer);\n };\n var getPaths = function (contrast, stepCount, reversed) {\n if (reversed === void 0) { reversed = false; }\n var points = [];\n for (var i = 0; i <= gradientRectMetrics.width; i += gradientRectMetrics.width / stepCount) {\n var value = findValue(contrast, i, 0, gradientRectMetrics.height, reversed ? (function (a, b) { return a < b; }) : (function (a, b) { return a > b; }));\n if (value !== null) {\n points.push([i, value]);\n }\n }\n return points;\n };\n var bezierCommandCalc = bezierCommand(controlPoint(line));\n return svgPath(getPaths(AA_CONTRAST, STEP_COUNT), bezierCommandCalc) +\n svgPath(getPaths(AA_CONTRAST, STEP_COUNT, true), bezierCommandCalc) +\n svgPath(getPaths(AAA_CONTRAST, STEP_COUNT), bezierCommandCalc) +\n svgPath(getPaths(AAA_CONTRAST, STEP_COUNT, true), bezierCommandCalc);\n };\n ColorContrastSvg.prototype.shouldComponentUpdate = function (nextProps) {\n if (nextProps.hsva.h === this.props.hsva.h &&\n nextProps.hsva.a === this.props.hsva.a &&\n this.props.backgroundColor === nextProps.backgroundColor) {\n return false;\n }\n return true;\n };\n ColorContrastSvg.prototype.render = function () {\n return (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", className: 'k-color-contrast-svg', dangerouslySetInnerHTML: { __html: this.renderSvgCurveLine() }, style: {\n position: 'absolute',\n overflow: 'visible',\n pointerEvents: 'none',\n left: 0,\n top: 0,\n zIndex: 3\n } }));\n };\n return ColorContrastSvg;\n}(React.Component));\nexport { ColorContrastSvg };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Draggable, guid, classNames, focusFirstFocusableChild, getTabIndex } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { Slider } from './../main';\nimport { fitIntoBounds, isPresent } from './utils/misc';\nimport { getColorFromHue, parseColor, getHSV, getColorFromHSV, getRGBA, getColorFromRGBA } from './utils/color-parser';\nimport { cacheHsva, removeCachedColor, getCachedHsva, getCachedRgba, getCachedHex, cacheRgba, cacheHex } from './utils/color-cache';\nimport ColorInput from './ColorInput';\nimport { ColorContrastLabels } from './ColorContrastLabels';\nimport { ColorContrastSvg } from './ColorContrastSvg';\nvar FORMAT = 'rgba';\nvar DEFAULT_SELECTED_COLOR = 'rgba(255, 255, 255, 1)';\n/**\n * Represents the [KendoReact ColorGradient component]({% slug overview_colorgradient %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return ;\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar ColorGradient = /** @class */ (function (_super) {\n __extends(ColorGradient, _super);\n function ColorGradient(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.onHexChange = function (hex, value, event) {\n if (_this.isUncontrolled) {\n var hsva = getHSV(value);\n _this.setState({ hsva: hsva, backgroundColor: getColorFromHue(hsva.h), rgba: getRGBA(value), hex: hex });\n }\n else {\n cacheHex(_this.state.guid, value, hex);\n }\n _this.dispatchChangeEvent(value, event, event.nativeEvent);\n };\n /**\n * @hidden\n */\n _this.onRgbaChange = function (rgba, event) {\n var value = getColorFromRGBA(rgba);\n if (_this.isUncontrolled) {\n var hsva = getHSV(value);\n var hex = parseColor(value, 'hex');\n _this.setState({ hsva: hsva, backgroundColor: getColorFromHue(hsva.h), rgba: rgba, hex: hex });\n }\n else {\n cacheRgba(_this.state.guid, value, rgba);\n }\n _this.dispatchChangeEvent(value, event.syntheticEvent, event.nativeEvent);\n };\n /**\n * @hidden\n */\n _this.onAlphaSliderChange = function (event) {\n _this.handleHsvaChange(Object.assign({}, _this.state.hsva, { a: event.value / 100 }), event.syntheticEvent, event.nativeEvent);\n };\n /**\n * @hidden\n */\n _this.onHueSliderChange = function (event) {\n _this.handleHsvaChange(Object.assign({}, _this.state.hsva, { h: event.value }), event.syntheticEvent, event.nativeEvent);\n };\n /**\n * @hidden\n */\n _this.onDrag = function (e) {\n _this.gradientWrapper.classList.add('k-dragging');\n _this.changePosition(e.event);\n };\n /**\n * @hidden\n */\n _this.onRelease = function () {\n _this.gradientWrapper.classList.remove('k-dragging');\n };\n /**\n * @hidden\n */\n _this.onGradientWrapperClick = function (event) {\n _this.changePosition(event);\n };\n /**\n * @hidden\n */\n _this.changePosition = function (event) {\n var gradientRectMetrics = _this.getGradientRectMetrics();\n var deltaX = event.clientX - gradientRectMetrics.left;\n var deltaY = event.clientY - gradientRectMetrics.top;\n var left = fitIntoBounds(deltaX, 0, gradientRectMetrics.width);\n var top = fitIntoBounds(deltaY, 0, gradientRectMetrics.height);\n var hsva = Object.assign({}, _this.state.hsva, { s: left / gradientRectMetrics.width, v: 1 - top / gradientRectMetrics.height });\n _this.handleHsvaChange(hsva, event, event.nativeEvent);\n };\n /**\n * @hidden\n */\n _this.onFocus = function (nativeEvent) {\n if (_this.props.onFocus) {\n _this.props.onFocus.call(undefined, { nativeEvent: nativeEvent, target: _this });\n }\n };\n /**\n * @hidden\n */\n _this.focus = function () {\n focusFirstFocusableChild(_this.wrapper);\n };\n validatePackage(packageMetadata);\n var value = props.value || props.defaultValue || parseColor(DEFAULT_SELECTED_COLOR, FORMAT);\n _this.state = Object.assign({}, ColorGradient.getStateFromValue(value), { isFirstRender: true, guid: guid() });\n return _this;\n }\n /**\n * @hidden\n */\n ColorGradient.getDerivedStateFromProps = function (props, state) {\n if (props.value && !state.isFirstRender) {\n // The component is in controlled mode.\n return ColorGradient.getStateFromValue(props.value, state.guid);\n }\n return null;\n };\n /**\n * @hidden\n */\n ColorGradient.prototype.componentDidMount = function () {\n this.setAlphaSliderBackground(this.state.backgroundColor);\n if (this.state.isFirstRender) {\n this.setState({ isFirstRender: false });\n }\n };\n /**\n * @hidden\n */\n ColorGradient.prototype.componentWillUnmount = function () {\n removeCachedColor(this.state.guid);\n };\n /**\n * @hidden\n */\n ColorGradient.prototype.componentDidUpdate = function (_, prevState) {\n if (prevState.backgroundColor !== this.state.backgroundColor) {\n this.setAlphaSliderBackground(this.state.backgroundColor);\n }\n };\n /**\n * @hidden\n */\n ColorGradient.prototype.renderRectangleDragHandle = function () {\n var style = {};\n if (!this.state.isFirstRender) {\n var gradientRectMetrics = this.getGradientRectMetrics();\n var top_1 = (1 - this.state.hsva.v) * gradientRectMetrics.height;\n var left = this.state.hsva.s * gradientRectMetrics.width;\n style.top = top_1 + \"px\";\n style.left = left + \"px\";\n }\n return React.createElement(\"div\", { className: \"k-hsv-draghandle k-draghandle\", style: style });\n };\n /**\n * @hidden\n */\n ColorGradient.prototype.handleHsvaChange = function (hsva, syntheticEvent, nativeEvent) {\n var value = getColorFromHSV(hsva);\n if (this.isUncontrolled) {\n var hex = parseColor(value, 'hex');\n this.setState({ hsva: hsva, backgroundColor: getColorFromHue(hsva.h), rgba: getRGBA(value), hex: hex });\n }\n else {\n cacheHsva(this.state.guid, value, hsva);\n }\n this.dispatchChangeEvent(value, syntheticEvent, nativeEvent);\n };\n /**\n * @hidden\n */\n ColorGradient.prototype.dispatchChangeEvent = function (value, syntheticEvent, nativeEvent) {\n if (this.props.onChange) {\n this.props.onChange.call(undefined, { syntheticEvent: syntheticEvent, nativeEvent: nativeEvent, target: this, value: value });\n }\n };\n /**\n * @hidden\n */\n ColorGradient.getStateFromValue = function (value, componentGuid) {\n if (!isPresent(parseColor(value, 'hex'))) {\n // Validate/sanitize the input.\n value = DEFAULT_SELECTED_COLOR;\n }\n var hsva = getCachedHsva(componentGuid, value) || getHSV(value);\n var rgba = getCachedRgba(componentGuid, value) || getRGBA(value);\n var hex = getCachedHex(componentGuid, value) || parseColor(value, 'hex');\n var backgroundColor = getColorFromHue(hsva.h);\n return { hsva: hsva, backgroundColor: backgroundColor, rgba: rgba, hex: hex };\n };\n /**\n * @hidden\n */\n ColorGradient.prototype.setAlphaSliderBackground = function (backgroundColor) {\n if (this.props.opacity && this.alphaSlider && this.alphaSlider.sliderTrack) {\n this.alphaSlider.sliderTrack.style.background = \"linear-gradient(to top, transparent, \" + backgroundColor + \")\";\n }\n };\n Object.defineProperty(ColorGradient.prototype, \"isUncontrolled\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.value === undefined;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n ColorGradient.prototype.getGradientRectMetrics = function () {\n return this.gradientWrapper.getBoundingClientRect();\n };\n /**\n * @hidden\n */\n ColorGradient.prototype.render = function () {\n var _this = this;\n var className = classNames('k-colorgradient', { 'k-state-disabled': this.props.disabled });\n return (React.createElement(\"div\", { id: this.props.id, className: className, \"aria-disabled\": this.props.disabled ? 'true' : undefined, style: this.props.style, ref: function (el) { return _this.wrapper = el; }, tabIndex: getTabIndex(this.props.tabIndex, this.props.disabled), \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, onFocus: this.onFocus },\n React.createElement(\"div\", { className: \"k-colorgradient-canvas k-hstack\" },\n React.createElement(\"div\", { className: \"k-hsv-rectangle\", style: { background: this.state.backgroundColor } },\n React.createElement(Draggable, { onDrag: this.onDrag, onRelease: this.onRelease, ref: function (el) { return _this.gradientWrapper = el ? el.element : undefined; } },\n React.createElement(\"div\", { className: \"k-hsv-gradient\", style: { touchAction: 'none' }, onClick: this.onGradientWrapperClick }, this.renderRectangleDragHandle())),\n this.props.backgroundColor && !this.state.isFirstRender &&\n React.createElement(ColorContrastSvg, { metrics: this.gradientWrapper ? this.getGradientRectMetrics() : undefined, hsva: this.state.hsva, backgroundColor: this.props.backgroundColor })),\n React.createElement(\"div\", { className: \"k-hsv-controls k-hstack\" },\n React.createElement(Slider, { value: this.state.hsva.h, buttons: false, vertical: true, min: 0, max: 360, step: 5, onChange: this.onHueSliderChange, className: \"k-hue-slider k-colorgradient-slider\", disabled: this.props.disabled }),\n this.props.opacity &&\n React.createElement(Slider, { value: isPresent(this.state.hsva.a) ? this.state.hsva.a * 100 : 100, buttons: false, vertical: true, min: 0, max: 100, step: 1, onChange: this.onAlphaSliderChange, className: \"k-alpha-slider k-colorgradient-slider\", disabled: this.props.disabled, ref: function (el) { return _this.alphaSlider = el; } }))),\n React.createElement(ColorInput, { rgba: this.state.rgba, onRgbaChange: this.onRgbaChange, hex: this.state.hex, onHexChange: this.onHexChange, opacity: this.props.opacity, disabled: this.props.disabled }),\n this.props.backgroundColor && (React.createElement(ColorContrastLabels, { bgColor: getRGBA(this.props.backgroundColor), rgba: this.state.rgba }))));\n };\n /**\n * @hidden\n */\n ColorGradient.propTypes = {\n defaultValue: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n opacity: PropTypes.bool,\n backgroundColor: PropTypes.string,\n disabled: PropTypes.bool,\n style: PropTypes.any,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string\n };\n /**\n * @hidden\n */\n ColorGradient.defaultProps = {\n opacity: true\n };\n return ColorGradient;\n}(React.Component));\nexport { ColorGradient };\n","import { isPresent } from './misc';\nimport { parseColor } from '@progress/kendo-drawing';\n/**\n * @hidden\n */\nvar ColorPaletteService = /** @class */ (function () {\n function ColorPaletteService() {\n this.colorRows = [];\n }\n ColorPaletteService.prototype.setColorMatrix = function (palette, columns) {\n this.colorRows = [];\n if (!(isPresent(palette) && palette.length)) {\n return;\n }\n columns = columns || palette.length;\n for (var start = 0; start < palette.length; start += columns) {\n var row = palette.slice(start, columns + start);\n this.colorRows.push(row);\n }\n };\n ColorPaletteService.prototype.getCellCoordsFor = function (color) {\n var _this = this;\n if (!isPresent(color)) {\n return;\n }\n var parsedColor = color ? parseColor(color, true) : color;\n var colors = [color];\n if (isPresent(parsedColor)) {\n colors.push(parsedColor.toCss(), parsedColor.toCssRgba());\n }\n var _loop_1 = function (row) {\n var _loop_2 = function (col) {\n if (colors.some(function (c) { return c === _this.colorRows[row][col]; })) {\n return { value: { row: row, col: col } };\n }\n };\n for (var col = 0; col < this_1.colorRows[row].length; col++) {\n var state_2 = _loop_2(col);\n if (typeof state_2 === \"object\")\n return state_2;\n }\n };\n var this_1 = this;\n for (var row = 0; row < this.colorRows.length; row++) {\n var state_1 = _loop_1(row);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n };\n ColorPaletteService.prototype.getColorAt = function (cellCoords) {\n if (!(isPresent(cellCoords) && isPresent(this.colorRows[cellCoords.row]))) {\n return;\n }\n return this.colorRows[cellCoords.row][cellCoords.col];\n };\n ColorPaletteService.prototype.getNextCell = function (current, horizontalStep, verticalStep) {\n if (!(isPresent(current) && isPresent(current.row) && isPresent(current.col))) {\n return { row: 0, col: 0 };\n }\n var row = this.clampIndex(current.row + verticalStep, this.colorRows.length - 1);\n var col = this.clampIndex(current.col + horizontalStep, this.colorRows[row].length - 1);\n return { row: row, col: col };\n };\n ColorPaletteService.prototype.clampIndex = function (index, max) {\n var minArrayIndex = 0;\n if (index < minArrayIndex) {\n return minArrayIndex;\n }\n if (index > max) {\n return max;\n }\n return index;\n };\n return ColorPaletteService;\n}());\nexport { ColorPaletteService };\n","/* eslint-disable max-len */\n/**\n * @hidden\n */\nexport var PALETTEPRESETS = {\n basic: {\n colors: ['#000000', '#7f7f7f', '#880015', '#ed1c24', '#ff7f27', '#fff200', '#22b14c', '#00a2e8', '#3f48cc', '#a349a4', ' ffffff', '#c3c3c3', '#b97a57', '#ffaec9', '#ffc90e', '#efe4b0', '#b5e61d', '#99d9ea', '#7092be', '#c8bfe7'],\n columns: 10\n },\n office: {\n colors: ['#ffffff', '#000000', '#e6e6e6', '#435569', '#4371c4', '#ed7e32', '#a5a4a5', '#febf04', '#5a9bd5', '#71ae48', '#f2f2f3', '#7f7f7f', '#d1cece', '#d5dde3', '#dae1f4', '#fce5d4', '#deeded', '#fff2cc', '#deeaf6', '#e1efd9', '#d7d8d8', '#585959', '#aeabab', '#adbaca', '#b4c5e7', '#f6caac', '#dbdbdb', '#ffe498', '#bcd6ee', '#c5e0b2', '#bfbfc0', '#3f3f3f', '#767070', '#8595b1', '#8fabdb', '#f5b183', '#c9c8c9', '#fed965', '#9bc4e5', '#a8d08d', '#a5a5a6', '#262625', '#393939', '#334050', '#2e5496', '#c45a11', '#7b7b7a', '#bf9000', '#2f75b5', '#548235', '#7f7f7f', '#0b0c0c', '#161616', '#222a34', '#203764', '#843d0b', '#525252', '#7f6000', '#1d4d79', '#375623'],\n columns: 10\n },\n apex: {\n colors: ['#ffffff', '#000000', '#c9c2d1', '#69676d', '#ceb966', '#9cb084', '#6bb1c9', '#6585cf', '#7e6bc9', '#a379bb', '#f2f2f2', '#7f7f7f', '#f4f2f5', '#e0e0e2', '#f5f1e0', '#ebefe6', '#e1eff4', '#e0e6f5', '#e5e1f4', '#ece4f1', '#d8d8d8', '#595959', '#e9e6ec', '#c2c1c5', '#ebe3c1', '#d7dfcd', '#c3dfe9', '#c1ceeb', '#cbc3e9', '#dac9e3', '#bfbfbf', '#3f3f3f', '#dedae3', '#a4a3a8', '#e1d5a3', '#c3cfb5', '#a6d0de', '#a2b5e2', '#b1a6de', '#c7aed6', '#a5a5a5', '#262626', '#9688a5', '#4e4d51', '#ae9638', '#758c5a', '#3d8da9', '#365bb0', '#533da9', '#7d4d99', '#7f7f7f', '#0c0c0c', '#635672', '#343336', '#746425', '#4e5d3c', '#295e70', '#243c75', '#372970', '#533366'],\n columns: 10\n },\n austin: {\n colors: ['#ffffff', '#000000', '#caf278', '#3e3d2d', '#94c600', '#71685a', '#ff6700', '#909465', '#956b43', '#fea022', '#f2f2f2', '#7f7f7f', '#f4fce4', '#dddcd0', '#efffc0', '#e3e1dc', '#ffe0cb', '#e8e9df', '#ece1d6', '#feecd2', '#d8d8d8', '#595959', '#e9f9c9', '#bbb9a1', '#dfff82', '#c8c3ba', '#ffc299', '#d2d4c0', '#dac3ad', '#fed9a6', '#bfbfbf', '#3f3f3f', '#dff7ae', '#ada598', '#cfff43', '#ada598', '#ffa365', '#bcbfa1', '#c8a585', '#fec67a', '#a5a5a5', '#262626', '#a9ea25', '#2e2d21', '#6f9400', '#544e43', '#bf4d00', '#6c6f4b', '#6f5032', '#d77b00', '#7f7f7f', '#0c0c0c', '#74a50f', '#1f1e16', '#4a6300', '#38342d', '#7f3300', '#484a32', '#4a3521', '#8f5200'],\n columns: 10\n },\n clarity: {\n colors: ['#ffffff', '#292934', '#f3f2dc', '#d2533c', '#93a299', '#ad8f67', '#726056', '#4c5a6a', '#808da0', '#79463d', '#f2f2f2', '#e7e7ec', '#e7e5b9', '#f6dcd8', '#e9ecea', '#eee8e0', '#e4dedb', '#d8dde3', '#e5e8ec', '#e9d6d3', '#d8d8d8', '#c4c4d1', '#d5d185', '#edbab1', '#d3d9d6', '#ded2c2', '#c9beb8', '#b2bcc8', '#ccd1d9', '#d3aea7', '#bfbfbf', '#8a8aa3', '#aca73b', '#e4978a', '#bec7c1', '#cdbba3', '#af9e94', '#8c9bac', '#b2bac6', '#bd857c', '#a5a5a5', '#56566e', '#56531d', '#a43925', '#6b7c72', '#866b48', '#554840', '#39434f', '#5c697b', '#5a342d', '#7f7f7f', '#3b3b4b', '#22210b', '#6d2619', '#47534c', '#594730', '#39302b', '#262d35', '#3d4652', '#3c231e'],\n columns: 10\n },\n slipstream: {\n colors: ['#ffffff', '#000000', '#b4dcfa', '#212745', '#4e67c8', '#5eccf3', '#a7ea52', '#5dceaf', '#ff8021', '#f14124', '#f2f2f2', '#7f7f7f', '#8bc9f7', '#c7cce4', '#dbe0f4', '#def4fc', '#edfadc', '#def5ef', '#ffe5d2', '#fcd9d3', '#d8d8d8', '#595959', '#4facf3', '#909aca', '#b8c2e9', '#beeafa', '#dbf6b9', '#beebdf', '#ffcca6', '#f9b3a7', '#bfbfbf', '#3f3f3f', '#0d78c9', '#5967af', '#94a3de', '#9ee0f7', '#caf297', '#9de1cf', '#ffb279', '#f68d7b', '#a5a5a5', '#262626', '#063c64', '#181d33', '#31479f', '#11b2eb', '#81d319', '#34ac8b', '#d85c00', '#c3260c', '#7f7f7f', '#0c0c0c', '#021828', '#101322', '#202f6a', '#0b769c', '#568c11', '#22725c', '#903d00', '#821908'],\n columns: 10\n },\n metro: {\n colors: ['#ffffff', '#000000', '#d6ecff', '#4e5b6f', '#7fd13b', '#ea157a', '#feb80a', '#00addc', '#738ac8', '#1ab39f', '#f2f2f2', '#7f7f7f', '#a7d6ff', '#d9dde4', '#e5f5d7', '#fad0e4', '#fef0cd', '#c5f2ff', '#e2e7f4', '#c9f7f1', '#d8d8d8', '#595959', '#60b5ff', '#b3bcca', '#cbecb0', '#f6a1c9', '#fee29c', '#8be6ff', '#c7d0e9', '#94efe3', '#bfbfbf', '#3f3f3f', '#007dea', '#8d9baf', '#b2e389', '#f272af', '#fed46b', '#51d9ff', '#aab8de', '#5fe7d5', '#a5a5a5', '#262626', '#003e75', '#3a4453', '#5ea226', '#af0f5b', '#c58c00', '#0081a5', '#425ea9', '#138677', '#7f7f7f', '#0c0c0c', '#00192e', '#272d37', '#3f6c19', '#750a3d', '#835d00', '#00566e', '#2c3f71', '#0c594f'],\n columns: 10\n },\n flow: {\n colors: ['#ffffff', '#000000', '#dbf5f9', '#04617b', '#0f6fc6', '#009dd9', '#0bd0d9', '#10cf9b', '#7cca62', '#a5c249', '#f2f2f2', '#7f7f7f', '#b2e9f2', '#b4ecfc', '#c7e2fa', '#c4eeff', '#c9fafc', '#c9faed', '#e4f4df', '#edf2da', '#d8d8d8', '#595959', '#76d9e8', '#6adafa', '#90c6f6', '#89deff', '#93f5f9', '#94f6db', '#cae9c0', '#dbe6b6', '#bfbfbf', '#3f3f3f', '#21b2c8', '#20c8f7', '#59a9f2', '#4fceff', '#5df0f6', '#5ff2ca', '#b0dfa0', '#c9da91', '#a5a5a5', '#262626', '#105964', '#02485c', '#0b5394', '#0075a2', '#089ca2', '#0b9b74', '#54a838', '#7e9532', '#7f7f7f', '#0c0c0c', '#062328', '#01303d', '#073763', '#004e6c', '#05686c', '#07674d', '#387025', '#546321'],\n columns: 10\n },\n hardcover: {\n colors: ['#ffffff', '#000000', '#ece9c6', '#895d1d', '#873624', '#d6862d', '#d0be40', '#877f6c', '#972109', '#aeb795', '#f2f2f2', '#7f7f7f', '#e1dca5', '#f2e0c6', '#f0d0c9', '#f6e6d5', '#f5f2d8', '#e7e5e1', '#fbc7bc', '#eef0e9', '#d8d8d8', '#595959', '#d0c974', '#e6c28d', '#e2a293', '#eeceaa', '#ece5b2', '#cfccc3', '#f78f7a', '#dee2d4', '#bfbfbf', '#3f3f3f', '#a29a36', '#daa454', '#d4735e', '#e6b681', '#e2d88c', '#b7b2a5', '#f35838', '#ced3bf', '#a5a5a5', '#262626', '#514d1b', '#664515', '#65281a', '#a2641f', '#a39428', '#655f50', '#711806', '#879464', '#7f7f7f', '#0c0c0c', '#201e0a', '#442e0e', '#431b11', '#6c4315', '#6d621a', '#433f35', '#4b1004', '#5a6243'],\n columns: 10\n },\n trek: {\n colors: ['#ffffff', '#000000', '#fbeec9', '#4e3b30', '#f0a22e', '#a5644e', '#b58b80', '#c3986d', '#a19574', '#c17529', '#f2f2f2', '#7f7f7f', '#f7e09e', '#e1d6cf', '#fcecd5', '#eddfda', '#f0e7e5', '#f3eae1', '#ece9e3', '#f5e3d1', '#d8d8d8', '#595959', '#f3cc5f', '#c4ad9f', '#f9d9ab', '#dcc0b6', '#e1d0cc', '#e7d5c4', '#d9d4c7', '#ebc7a3', '#bfbfbf', '#3f3f3f', '#d29f0f', '#a78470', '#f6c781', '#cba092', '#d2b9b2', '#dbc1a7', '#c6bfab', '#e1ac76', '#a5a5a5', '#262626', '#694f07', '#3a2c24', '#c87d0e', '#7b4b3a', '#926255', '#a17242', '#7b7153', '#90571e', '#7f7f7f', '#0c0c0c', '#2a1f03', '#271d18', '#855309', '#523226', '#614138', '#6b4c2c', '#524b37', '#603a14'],\n columns: 10\n },\n verve: {\n colors: ['#ffffff', '#000000', '#d2d2d2', '#666666', '#ff388c', '#e40059', '#9c007f', '#68007f', '#005bd3', '#00349e', '#f2f2f2', '#7f7f7f', '#bdbdbd', '#e0e0e0', '#ffd7e8', '#ffc6dc', '#ffb8f1', '#f1b2ff', '#c3dcff', '#b8cfff', '#d8d8d8', '#595959', '#9d9d9d', '#c1c1c1', '#ffafd1', '#ff8eba', '#ff71e4', '#e365ff', '#87baff', '#72a0ff', '#bfbfbf', '#3f3f3f', '#696969', '#a3a3a3', '#ff87ba', '#ff5597', '#ff2ad7', '#d519ff', '#4b98ff', '#2b71ff', '#a5a5a5', '#262626', '#343434', '#4c4c4c', '#e90062', '#ab0042', '#75005f', '#4e005f', '#00449e', '#002676', '#7f7f7f', '#0c0c0c', '#151515', '#333333', '#9b0041', '#72002c', '#4e003f', '#34003f', '#002d69', '#00194f'],\n columns: 10\n },\n monochrome: {\n colors: ['#000000', '#1a1a1a', '#333333', '#4d4d4d', '#666666', '#808080', '#999999', '#b3b3b3', '#cccccc', '#e6e6e6', '#f2f2f2', '#ffffff'],\n columns: 12\n }\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { ColorPaletteService } from './utils/color-palette.service';\nimport { classNames, Keys, dispatchEvent, guid, getTabIndex } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { PALETTEPRESETS } from './models/palette-presets';\nimport { isPresent } from './utils/misc';\nimport { parseColor } from './utils/color-parser';\n/**\n * @hidden\n */\nexport var DEFAULT_TILE_SIZE = 24;\n/**\n * @hidden\n */\nexport var DEFAULT_COLUMNS_COUNT = 10;\n/**\n * @hidden\n */\nexport var DEFAULT_PRESET = 'office';\n/**\n * Represents the [KendoReact ColorPalette component]({% slug overview_colorpalette %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return ;\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nvar ColorPalette = /** @class */ (function (_super) {\n __extends(ColorPalette, _super);\n function ColorPalette(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.wrapper = null;\n _this.guid = guid();\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this.wrapper) {\n _this.wrapper.focus();\n }\n };\n _this.onKeyDown = function (event) {\n switch (event.keyCode) {\n case Keys.down:\n _this.handleCellNavigation(0, 1);\n break;\n case Keys.up:\n _this.handleCellNavigation(0, -1);\n break;\n case Keys.right:\n _this.handleCellNavigation(1, 0);\n break;\n case Keys.left:\n _this.handleCellNavigation(-1, 0);\n break;\n case Keys.enter:\n _this.handleEnter(event);\n break;\n default: return;\n }\n event.preventDefault();\n };\n _this.onColorClick = function (color, event) {\n if (_this.isUncontrolled) {\n _this.setState({ selectedColor: color, focusedColor: color });\n }\n else {\n _this.setState({ focusedColor: color });\n }\n _this.dispatchChangeEvent(color, event);\n };\n _this.onFocus = function (nativeEvent) {\n _this.setState({ focusedColor: _this.state.selectedColor || _this.paletteService.colorRows[0][0] });\n if (_this.props.onFocus) {\n _this.props.onFocus.call(undefined, { nativeEvent: nativeEvent, target: _this });\n }\n };\n _this.onBlur = function () {\n _this.setState({ focusedColor: undefined });\n };\n validatePackage(packageMetadata);\n // The empty string for the `value` prop means no selection but controlled mode.\n _this.state = {\n selectedColor: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue,\n isFirstRender: true\n };\n return _this;\n }\n /**\n * @hidden\n */\n ColorPalette.prototype.render = function () {\n var _this = this;\n var paletteInfo = this.getPaletteInfo();\n var svc = this.paletteService = new ColorPaletteService();\n svc.setColorMatrix(paletteInfo.colors, paletteInfo.columns);\n var selectedCellCoords = svc.getCellCoordsFor(this.state.selectedColor);\n var focusedCellCoords = svc.getCellCoordsFor(this.state.focusedColor);\n var className = classNames('k-colorpalette', { 'k-state-disabled': this.props.disabled });\n if (paletteInfo.colors.length) {\n return (React.createElement(\"div\", { id: this.props.id, className: className, onFocus: this.onFocus, onBlur: this.onBlur, onKeyDown: this.onKeyDown, \"aria-disabled\": this.props.disabled ? 'true' : undefined, \"aria-activedescendant\": selectedCellCoords && this.createCellId(selectedCellCoords), \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, tabIndex: getTabIndex(this.props.tabIndex, this.props.disabled), ref: function (el) { return _this.wrapper = el; } },\n React.createElement(\"div\", { className: \"k-colorpalette-table-wrap\", role: \"grid\" },\n React.createElement(\"table\", { className: \"k-colorpalette-table k-palette\", role: \"presentation\" },\n React.createElement(\"tbody\", null, this.renderRows(svc.colorRows, selectedCellCoords, focusedCellCoords))))));\n }\n else {\n // In this way, the code prevents an eventual focus of the component when no cells are available.\n // This is needed because upon focus the first cell gets focused.\n return '';\n }\n };\n /**\n * @hidden\n */\n ColorPalette.getDerivedStateFromProps = function (props, state) {\n if (!state.isFirstRender && props.value !== undefined) {\n // The component is in controlled mode.\n if (props.value === '' && state.selectedColor !== undefined) {\n // The selection has to be removed.\n return { selectedColor: undefined };\n }\n else if (props.value !== '' && props.value !== state.selectedColor) {\n return { selectedColor: props.value };\n }\n }\n else if (state.isFirstRender) {\n return { isFirstRender: false };\n }\n return null;\n };\n ColorPalette.prototype.handleCellNavigation = function (horizontalStep, verticalStep) {\n if (this.focusedColorCooridanates) {\n var newCoords = this.paletteService.getNextCell(this.focusedColorCooridanates, horizontalStep, verticalStep);\n this.setState({ focusedColor: this.paletteService.getColorAt(newCoords) });\n }\n else {\n this.setState({ focusedColor: this.paletteService.colorRows[0][0] });\n }\n };\n ColorPalette.prototype.handleEnter = function (event) {\n if (this.isUncontrolled) {\n this.setState({ selectedColor: this.state.focusedColor });\n }\n this.dispatchChangeEvent(this.state.focusedColor, event);\n };\n ColorPalette.prototype.dispatchChangeEvent = function (value, event) {\n dispatchEvent(this.props.onChange, event, this, { value: value, rgbaValue: parseColor(value, 'rgba') });\n };\n Object.defineProperty(ColorPalette.prototype, \"focusedColorCooridanates\", {\n get: function () {\n return this.state.focusedColor ? this.paletteService.getCellCoordsFor(this.state.focusedColor) : undefined;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColorPalette.prototype, \"isUncontrolled\", {\n get: function () {\n return this.props.value === undefined;\n },\n enumerable: true,\n configurable: true\n });\n ColorPalette.prototype.getPaletteInfo = function () {\n if (typeof this.props.palette === 'string') {\n var preset = PALETTEPRESETS[this.props.palette];\n if (isPresent(preset)) {\n return {\n colors: preset.colors,\n columns: this.props.columns || preset.columns || DEFAULT_COLUMNS_COUNT\n };\n }\n else {\n return { colors: [], columns: 0 };\n }\n }\n else {\n return { colors: this.props.palette || [], columns: this.props.columns || DEFAULT_COLUMNS_COUNT };\n }\n };\n ColorPalette.prototype.renderRows = function (rows, selectedCellCoords, focusedCellCoords) {\n var _this = this;\n return rows.map(function (row, i) {\n return React.createElement(\"tr\", { role: \"row\", key: i }, _this.renderColumns(row, i, selectedCellCoords, focusedCellCoords));\n });\n };\n ColorPalette.prototype.renderColumns = function (columns, rowIndex, selectedCellCoords, focusedCellCoords) {\n var _this = this;\n var rowIsSelected = selectedCellCoords !== undefined && selectedCellCoords.row === rowIndex;\n var selectedColumn = selectedCellCoords && selectedCellCoords.col;\n var rowIsFocused = focusedCellCoords !== undefined && focusedCellCoords.row === rowIndex;\n var focusedColumn = focusedCellCoords && focusedCellCoords.col;\n var tileSize = typeof this.props.tileSize !== 'number' ?\n this.props.tileSize : { width: this.props.tileSize, height: this.props.tileSize };\n var width = tileSize.width + 'px';\n var height = tileSize.height + 'px';\n return columns.map(function (color, i) {\n var isSelected = rowIsSelected && selectedColumn === i;\n var className = classNames('k-colorpalette-tile', {\n 'k-state-selected': isSelected,\n 'k-state-focus': rowIsFocused && focusedColumn === i\n });\n return (React.createElement(\"td\", { className: className, \"aria-label\": color, \"aria-selected\": isSelected ? true : _this.props.disabled ? undefined : false, style: { backgroundColor: color, width: width, height: height, minWidth: width }, onClick: function (event) { return _this.onColorClick(color, event); }, id: _this.createCellId({ row: rowIndex, col: i }), key: i }));\n });\n };\n ColorPalette.prototype.createCellId = function (cellCoords) {\n return this.guid + \"_\" + cellCoords.row + \"_\" + cellCoords.col;\n };\n /**\n * @hidden\n */\n ColorPalette.propTypes = {\n palette: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]),\n columns: PropTypes.number,\n tileSize: PropTypes.any,\n defaultValue: PropTypes.string,\n value: PropTypes.string,\n disabled: PropTypes.bool,\n tabIndex: PropTypes.number,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string\n };\n /**\n * @hidden\n */\n ColorPalette.defaultProps = {\n palette: DEFAULT_PRESET,\n tileSize: DEFAULT_TILE_SIZE\n };\n return ColorPalette;\n}(React.Component));\nexport { ColorPalette };\n","var clearSlide = function (element) {\n element.style.transitionDuration = '';\n element.classList.remove('k-slide-down-appear', 'k-slide-down-appear-active', 'k-slide-down-exit', 'k-slide-down-exit-active', 'k-slide-up-appear', 'k-slide-up-appear-active', 'k-slide-up-exit', 'k-slide-up-exit-active');\n};\nvar firefox = typeof window !== 'undefined' &&\n /Firefox/.test(window.navigator.userAgent);\n/**\n * @hidden\n */\nexport var slide = function (element, direction, duration, type, callback) {\n if (duration === 0) {\n return callback();\n }\n var slideClass = 'k-slide-' + direction + '-' + type;\n var slideActiveClass = slideClass + '-active';\n var transitionend = function () {\n // if event is attached using react,\n // the animation does not work well in firefox,\n // when the show/hide button is toggled quickly.\n element.removeEventListener('transitionend', transitionend);\n clearSlide(element);\n callback();\n };\n element.addEventListener('transitionend', transitionend);\n var ownerDocument = element.ownerDocument;\n if (!ownerDocument) {\n return;\n }\n var deafultView = ownerDocument.defaultView;\n if (!deafultView) {\n return;\n }\n var animate = function () {\n clearSlide(element);\n element.classList.add(slideClass);\n deafultView.requestAnimationFrame(function () {\n element.style.transitionDuration = duration + 'ms';\n element.classList.add(slideActiveClass);\n });\n };\n if (firefox) {\n deafultView.requestAnimationFrame(animate);\n }\n else {\n animate();\n }\n};\n","import { parents, siblingContainer } from '@progress/kendo-popup-common';\nimport { canUseDOM, hasRelativeStackingContext } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var eitherRect = function (rect, offset) {\n if (!rect) {\n return { height: 0, left: offset.left, top: offset.top, width: 0 };\n }\n return rect;\n};\n/**\n * @hidden\n */\nexport var replaceOffset = function (rect, offset) {\n if (!offset) {\n return rect;\n }\n var result = {\n height: rect.height,\n left: offset.left,\n top: offset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\nexport var removeStackingOffset = function (rect, stackingOffset) {\n if (!stackingOffset) {\n return rect;\n }\n var result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n return result;\n};\n/**\n * @hidden\n */\nexport var isDifferentOffset = function (oldOffset, newOffset) {\n var oldLeft = oldOffset.left, oldTop = oldOffset.top;\n var newLeft = newOffset.left, newTop = newOffset.top;\n return Math.abs(oldLeft - newLeft) >= 1 || Math.abs(oldTop - newTop) >= 1;\n};\n/**\n * @hidden\n */\nexport var hasBoundingRect = function (elem) { return !!elem.getBoundingClientRect; };\n/**\n * @hidden\n */\nexport var OVERFLOW_REGEXP = /auto|scroll/;\n/**\n * @hidden\n */\nvar overflowStyle = function (element) {\n var styles = window.getComputedStyle(element);\n return \"\" + styles.overflow + styles.overflowX + styles.overflowY;\n};\n/**\n * @hidden\n */\nexport var scrollableParents = function (element) {\n var parentElements = [];\n if (!canUseDOM) {\n return parentElements;\n }\n var parent = element.parentElement;\n while (parent) {\n if (OVERFLOW_REGEXP.test(overflowStyle(parent))) {\n parentElements.push(parent);\n }\n parent = parent.parentElement;\n }\n parentElements.push(window);\n return parentElements;\n};\n/**\n * @hidden\n */\nexport var FRAME_DURATION = 1000 / 60; // 1000ms divided by 60fps\n/**\n * @hidden\n */\nexport var HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext();\n/**\n * @hidden\n */\nexport var zIndex = function (anchor, container) {\n if (!anchor || !canUseDOM) {\n return null;\n }\n var sibling = siblingContainer(anchor, container);\n if (!sibling) {\n return null;\n }\n var result = [anchor].concat(parents(anchor, sibling)).reduce(function (index, p) {\n var zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;\n var current = parseInt(zIndexStyle, 10);\n return current > index ? current : index;\n }, 0);\n return result ? (result + 1) : null;\n};\n/**\n * @hidden\n */\nexport var CollisionType = {\n fit: 'fit',\n flip: 'flip'\n};\n/**\n * @hidden\n */\nexport var AlignPoint = {\n left: 'left',\n center: 'center',\n right: 'right',\n bottom: 'bottom',\n top: 'top'\n};\n/**\n * @hidden\n */\nexport var throttle = function (func, wait, options) {\n if (options === void 0) { options = {}; }\n var timeout, context, args, result;\n var previous = 0;\n options = options || {};\n var later = function () {\n previous = options.leading === false ? 0 : new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n };\n var throttled = function () {\n var now = new Date().getTime();\n if (!previous && options.leading === false) {\n previous = now;\n }\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) {\n context = args = null;\n }\n }\n else if (!timeout && options.trailing !== false) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n return throttled;\n};\n","import { eitherRect, removeStackingOffset } from '../util';\n/**\n * @hidden\n */\nvar AlignService = /** @class */ (function () {\n function AlignService(_dom) {\n this._dom = _dom;\n }\n AlignService.prototype.alignElement = function (settings) {\n var anchor = settings.anchor, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, offset = settings.offset;\n var fixedMode = !this._dom.hasOffsetParent(element);\n var anchorRect = fixedMode ?\n this.absoluteRect(anchor, element, offset) :\n this.relativeRect(anchor, element, offset);\n return this._dom.align({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n elementAlign: elementAlign,\n elementRect: this._dom.offset(element)\n });\n };\n AlignService.prototype.absoluteRect = function (anchor, element, offset) {\n var dom = this._dom;\n var rect = eitherRect(dom.offset(anchor), offset);\n var stackingOffset = dom.stackingElementOffset(element);\n var removedOffset = removeStackingOffset(rect, stackingOffset);\n var stackingScroll = dom.stackingElementScroll(element);\n var withScroll = dom.addScroll(removedOffset, stackingScroll);\n var scrollPosition = this.elementScrollPosition(anchor, element);\n var result = dom.removeScroll(withScroll, scrollPosition);\n result.left += window.scrollX || window.pageXOffset;\n result.top += window.scrollY || window.pageYOffset;\n return result;\n };\n AlignService.prototype.elementScrollPosition = function (anchor, element) {\n return anchor ? { x: 0, y: 0 } : this._dom.scrollPosition(element);\n };\n AlignService.prototype.relativeRect = function (anchor, element, offset) {\n return eitherRect(this._dom.position(anchor, element), offset);\n };\n return AlignService;\n}());\nexport { AlignService };\n","import { align, applyLocationOffset, boundingOffset, getWindowViewPort, isBodyOffset, offset, positionWithScroll, restrictToView, addScroll, removeScroll, scrollPosition, siblingContainer } from '@progress/kendo-popup-common';\nimport { HAS_RELATIVE_STACKING_CONTEXT, scrollableParents, zIndex } from '../util';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n }\n DOMService.prototype.addOffset = function (current, addition) {\n return {\n left: current.left + addition.left,\n top: current.top + addition.top\n };\n };\n DOMService.prototype.align = function (settings) {\n return align(settings);\n };\n DOMService.prototype.boundingOffset = function (el) {\n return boundingOffset(el);\n };\n DOMService.prototype.getWindow = function () {\n return canUseDOM ? window : null;\n };\n DOMService.prototype.isBodyOffset = function (el) {\n return isBodyOffset(el);\n };\n DOMService.prototype.hasOffsetParent = function (el) {\n if (!el) {\n return false;\n }\n var offsetParentEl = el.offsetParent;\n return offsetParentEl &&\n !(offsetParentEl.nodeName === 'BODY' &&\n window.getComputedStyle(offsetParentEl).position === 'static');\n };\n DOMService.prototype.offset = function (el) {\n if (!el) {\n return null;\n }\n return offset(el);\n };\n DOMService.prototype.staticOffset = function (element) {\n if (!element) {\n return null;\n }\n var _a = element.style, left = _a.left, top = _a.top;\n element.style.left = '0px';\n element.style.top = '0px';\n var currentOffset = offset(element);\n element.style.left = left;\n element.style.top = top;\n return currentOffset;\n };\n DOMService.prototype.position = function (element, popup) {\n if (!element || !popup) {\n return null;\n }\n var parentSibling = siblingContainer(element, popup);\n return positionWithScroll(element, parentSibling);\n };\n DOMService.prototype.relativeOffset = function (el, currentLocation) {\n return applyLocationOffset(this.offset(el), currentLocation, this.isBodyOffset(el));\n };\n DOMService.prototype.addScroll = function (rect, scroll) {\n return addScroll(rect, scroll);\n };\n DOMService.prototype.removeScroll = function (rect, scroll) {\n return removeScroll(rect, scroll);\n };\n DOMService.prototype.restrictToView = function (settings) {\n return restrictToView(settings);\n };\n DOMService.prototype.scrollPosition = function (el) {\n return scrollPosition(el);\n };\n DOMService.prototype.scrollableParents = function (el) {\n return scrollableParents(el);\n };\n DOMService.prototype.stackingElementOffset = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return offset(relativeContextElement);\n };\n DOMService.prototype.stackingElementScroll = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return { x: 0, y: 0 };\n }\n return {\n x: relativeContextElement.scrollLeft,\n y: relativeContextElement.scrollTop\n };\n };\n DOMService.prototype.stackingElementViewPort = function (el) {\n var relativeContextElement = this.getRelativeContextElement(el);\n if (!relativeContextElement) {\n return null;\n }\n return {\n height: relativeContextElement.scrollHeight,\n width: relativeContextElement.scrollWidth\n };\n };\n DOMService.prototype.getRelativeContextElement = function (el) {\n if (!el || !HAS_RELATIVE_STACKING_CONTEXT) {\n return null;\n }\n var parent = el.parentElement;\n while (parent) {\n if (window.getComputedStyle(parent).transform !== 'none') {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n };\n DOMService.prototype.useRelativePosition = function (el) {\n return !!this.getRelativeContextElement(el);\n };\n DOMService.prototype.windowViewPort = function (el) {\n return getWindowViewPort(el);\n };\n DOMService.prototype.zIndex = function (anchor, container) {\n return zIndex(anchor, container);\n };\n DOMService.prototype.zoomLevel = function () {\n if (!canUseDOM) {\n return 1;\n }\n return parseFloat((document.documentElement.clientWidth / window.innerWidth).toFixed(2));\n };\n DOMService.prototype.isZoomed = function () {\n return this.zoomLevel() > 1;\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { eitherRect, replaceOffset } from '../util';\n/**\n * @hidden\n */\nvar PositionService = /** @class */ (function () {\n function PositionService(_dom) {\n this._dom = _dom;\n }\n PositionService.prototype.positionElement = function (settings) {\n var anchor = settings.anchor, currentLocation = settings.currentLocation, element = settings.element, anchorAlign = settings.anchorAlign, elementAlign = settings.elementAlign, collisions = settings.collisions;\n var dom = this._dom;\n var viewPort = settings.viewPort || dom.stackingElementViewPort(element) || dom.windowViewPort(element);\n var anchorRect = eitherRect(dom.offset(anchor), currentLocation);\n var initialElementRect = replaceOffset(dom.staticOffset(element), currentLocation);\n var elementRect = this.elementRect(element, initialElementRect);\n var result = dom.restrictToView({\n anchorAlign: anchorAlign,\n anchorRect: anchorRect,\n collisions: collisions,\n elementAlign: elementAlign,\n elementRect: elementRect,\n viewPort: viewPort\n });\n return {\n flipped: result.flipped,\n offset: dom.addOffset(initialElementRect, result.offset)\n };\n };\n PositionService.prototype.elementRect = function (element, rect) {\n return this._dom.removeScroll(rect, this._dom.scrollPosition(element));\n };\n return PositionService;\n}());\nexport { PositionService };\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-popup',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1637584105,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as PropTypes from 'prop-types';\nimport { slide } from './animation';\nimport { classNames, canUseDOM } from '@progress/kendo-react-common';\nimport { CollisionType, AlignPoint, throttle, FRAME_DURATION } from './util';\nimport { AlignService } from './services/alignService';\nimport { DOMService } from './services/domService';\nimport { PositionService } from './services/positionService';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nfunction isEquivalent(a, b) {\n if (a === b) {\n return true;\n }\n if (!!a !== !!b) {\n return false;\n }\n var aProps = Object.getOwnPropertyNames(a);\n var bProps = Object.getOwnPropertyNames(b);\n if (aProps.length !== bProps.length) {\n return false;\n }\n for (var i = 0; i < aProps.length; i++) {\n var propName = aProps[i];\n if (a[propName] !== b[propName]) {\n return false;\n }\n }\n return true;\n}\nvar DEFAULT_OFFSET = {\n left: -1000,\n top: 0\n};\nvar Status;\n(function (Status) {\n Status[\"hiding\"] = \"hiding\";\n Status[\"hidden\"] = \"hidden\";\n Status[\"showing\"] = \"showing\";\n Status[\"shown\"] = \"shown\";\n Status[\"reposition\"] = \"reposition\";\n})(Status || (Status = {}));\nvar ANIMATION_CONTAINER = 'k-animation-container';\nvar ANIMATION_CONTAINER_SHOWN = 'k-animation-container-shown';\nvar ANIMATION_CONTAINER_RELATIVE = 'k-animation-container-relative';\nvar ANIMATION_CONTAINER_CHILD = 'k-child-animation-container';\nvar K_POPUP = 'k-popup';\n/**\n * @hidden\n */\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = { current: Status.hidden, previous: Status.hidden, props: {} };\n _this._popup = null;\n _this.show = function (popup) {\n _this.setPosition(popup);\n _this.animate(popup.firstChild, 'enter', _this.onOpened);\n _this.setState({ current: Status.shown, previous: _this.state.current });\n };\n _this.setPosition = function (popup) {\n var _a = _this.props, anchorAlign = _a.anchorAlign, popupAlign = _a.popupAlign, collision = _a.collision, offset = _a.offset, anchor = _a.anchor;\n var popupContent = popup.firstElementChild;\n var _b = getComputedStyle(popupContent), contentWidth = _b.width, contentHeight = _b.height;\n // The absolute position prevents appearing of a scrollbar which could move the anchor element and breaks the positioning.\n popupContent.style.position = 'absolute';\n // Width and height are required since absolute position breaks the element sizing.\n popupContent.style.width = contentWidth;\n popupContent.style.height = contentHeight;\n var alignedOffset = _this._alignService.alignElement({\n anchor: anchor,\n element: popupContent,\n elementAlign: popupAlign,\n anchorAlign: anchorAlign,\n offset: offset\n });\n var position = _this._positionService.positionElement({\n anchor: anchor,\n anchorAlign: anchorAlign,\n collisions: collision,\n element: popupContent,\n currentLocation: alignedOffset,\n elementAlign: popupAlign\n });\n if (position.offset) {\n popup.style.top = position.offset.top + 'px';\n popup.style.left = position.offset.left + 'px';\n popupContent.style.position = '';\n popupContent.style.width = '';\n popupContent.style.height = '';\n }\n _this._flipped = position.flipped;\n };\n _this.onOpened = function () {\n var element = _this._popup;\n if (!element) {\n return;\n }\n if (_this.props.show) {\n element.classList.add(ANIMATION_CONTAINER_SHOWN);\n }\n _this.attachRepositionHandlers(element);\n if (_this.props.onOpen) {\n _this.props.onOpen.call(undefined, { target: _this });\n }\n };\n _this.animate = function (element, type, callback) {\n slide(element, _this._flipped ? 'up' : 'down', _this.animationDuration[type], type, callback);\n };\n _this.onClosing = function (popup) {\n if (!_this.props.show) {\n popup.classList.remove(ANIMATION_CONTAINER_SHOWN);\n }\n _this.detachRepositionHandlers();\n };\n _this.onClosed = function () {\n if (_this.state.current === Status.hiding && _this.state.previous === Status.shown) {\n _this.setState({ current: Status.hidden, previous: _this.state.current });\n }\n if (_this.props.onClose) {\n _this.props.onClose.call(undefined, { target: _this });\n }\n };\n validatePackage(packageMetadata);\n _this._domService = new DOMService();\n _this._alignService = new AlignService(_this._domService);\n _this._positionService = new PositionService(_this._domService);\n _this.reposition = throttle(_this.reposition.bind(_this), FRAME_DURATION);\n return _this;\n }\n /**\n * @hidden\n */\n Popup.getDerivedStateFromProps = function (props, state) {\n var show = props.show, anchor = props.anchor, anchorAlign = props.anchorAlign, appendTo = props.appendTo, collision = props.collision, popupAlign = props.popupAlign, className = props.className, popupClass = props.popupClass, style = props.style, offset = props.offset, contentKey = props.contentKey;\n var nextState = __assign({}, state, { props: {\n show: show, anchor: anchor, anchorAlign: anchorAlign, appendTo: appendTo, collision: collision, popupAlign: popupAlign, className: className, popupClass: popupClass, style: style, offset: offset, contentKey: contentKey\n } });\n if (props.show) {\n if (state.current === Status.hidden || state.current === Status.hiding) {\n return __assign({}, nextState, { current: Status.showing, previous: state.current });\n }\n if (state.current === Status.showing) {\n return __assign({}, nextState, { current: Status.shown, previous: state.current });\n }\n if (state.current === Status.shown &&\n (!isEquivalent(offset, state.props.offset) ||\n !isEquivalent(anchorAlign, state.props.anchorAlign) ||\n !isEquivalent(appendTo, state.props.appendTo) ||\n !isEquivalent(collision, state.props.collision) ||\n !isEquivalent(popupAlign, state.props.popupAlign) ||\n !isEquivalent(style, state.props.style) ||\n anchor !== state.props.anchor ||\n popupClass !== state.props.popupClass ||\n className !== state.props.className)) {\n return __assign({}, nextState, { current: Status.reposition, previous: state.current });\n }\n return nextState;\n }\n if (state.current === Status.hiding || state.current === Status.hidden) {\n return __assign({}, nextState, { current: Status.hidden, previous: state.current });\n }\n return __assign({}, nextState, { current: Status.hiding, previous: state.current });\n };\n /**\n * @hidden\n */\n Popup.prototype.componentDidUpdate = function (prevProps) {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n else if (this.state.current === Status.hiding && this._popup) {\n this.onClosing(this._popup);\n this.animate(this._popup.firstChild, 'exit', this.onClosed);\n }\n else if (this.state.current === Status.reposition && this.state.previous === Status.shown) {\n this.setState({ current: Status.shown, previous: this.state.current });\n }\n else if (this.state.current === Status.shown &&\n prevProps.contentKey !== this.props.contentKey && this._popup) {\n this.setPosition(this._popup);\n }\n };\n /**\n * @hidden\n */\n Popup.prototype.componentDidMount = function () {\n if (this.state.current === Status.showing && this._popup) {\n this.show(this._popup);\n }\n };\n /**\n * @hidden\n */\n Popup.prototype.componentWillUnmount = function () {\n this.detachRepositionHandlers();\n };\n /**\n * @hidden\n */\n Popup.prototype.render = function () {\n var _this = this;\n var _a = this.props, children = _a.children, className = _a.className, popupClass = _a.popupClass, show = _a.show, id = _a.id;\n var appendTo = this.props.appendTo ?\n this.props.appendTo :\n canUseDOM ?\n (this.props.anchor && this.props.anchor.ownerDocument ? this.props.anchor.ownerDocument.body : document.body)\n : undefined;\n if (this.state.current === Status.reposition && this.state.previous === Status.shown && this._popup) {\n this.setPosition(this._popup);\n }\n var style = Object.assign({}, { position: 'absolute' }, this.props.style || {});\n var closing = this.state.current === Status.hiding;\n if ((show || closing) && appendTo) {\n var popup = (React.createElement(\"div\", { className: classNames(ANIMATION_CONTAINER, ANIMATION_CONTAINER_RELATIVE, className), id: id, ref: function (e) { return _this._popup = e; }, style: style },\n React.createElement(\"div\", { className: classNames(popupClass, K_POPUP, ANIMATION_CONTAINER_CHILD), style: { transitionDelay: '0ms' } }, children)));\n return ReactDOM.createPortal(popup, appendTo);\n }\n return null;\n };\n Object.defineProperty(Popup.prototype, \"animationDuration\", {\n get: function () {\n var animate = this.props.animate;\n var enter = 0;\n var exit = 0;\n if (animate) {\n if (animate === true) {\n enter = exit = 300;\n }\n else {\n enter = animate.openDuration || 0;\n exit = animate.closeDuration || 0;\n }\n }\n return { enter: enter, exit: exit };\n },\n enumerable: true,\n configurable: true\n });\n Popup.prototype.attachRepositionHandlers = function (element) {\n var _this = this;\n this.detachRepositionHandlers();\n this._scrollableParents = this._domService.scrollableParents(this.props.anchor || element);\n this._scrollableParents.map(function (p) { return p.addEventListener('scroll', _this.reposition); });\n window.addEventListener('resize', this.reposition);\n };\n Popup.prototype.detachRepositionHandlers = function () {\n var _this = this;\n if (this._scrollableParents) {\n this._scrollableParents.map(function (p) { return p.removeEventListener('scroll', _this.reposition); });\n this._scrollableParents = undefined;\n }\n window.removeEventListener('resize', this.reposition);\n };\n Popup.prototype.reposition = function () {\n this.setState({ current: Status.reposition, previous: this.state.current });\n };\n /**\n * @hidden\n */\n Popup.propTypes = {\n anchor: function (props) {\n var anchor = props.anchor;\n if (anchor && typeof anchor.nodeType !== 'number') {\n return new Error('Invalid prop `anchor` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n appendTo: function (props) {\n var element = props.appendTo;\n if (element && typeof element.nodeType !== 'number') {\n return new Error('Invalid prop `appendTo` supplied to `Kendo React Popup`. Validation failed.');\n }\n return null;\n },\n className: PropTypes.string,\n id: PropTypes.string,\n popupClass: PropTypes.string,\n collision: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n CollisionType.fit,\n CollisionType.flip\n ]),\n vertical: PropTypes.oneOf([\n CollisionType.fit,\n CollisionType.flip\n ])\n }),\n anchorAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n popupAlign: PropTypes.shape({\n horizontal: PropTypes.oneOf([\n AlignPoint.left,\n AlignPoint.center,\n AlignPoint.right\n ]),\n vertical: PropTypes.oneOf([\n AlignPoint.top,\n AlignPoint.center,\n AlignPoint.bottom\n ])\n }),\n offset: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number\n }),\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.node\n ]),\n show: PropTypes.bool,\n animate: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n openDuration: PropTypes.number,\n closeDuration: PropTypes.number\n })\n ])\n };\n /**\n * @hidden\n */\n Popup.defaultProps = {\n collision: {\n horizontal: CollisionType.fit,\n vertical: CollisionType.flip\n },\n anchorAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.bottom\n },\n popupAlign: {\n horizontal: AlignPoint.left,\n vertical: AlignPoint.top\n },\n offset: DEFAULT_OFFSET,\n animate: true,\n // appendTo: document.body,\n show: false\n };\n return Popup;\n}(React.Component));\nexport { Popup };\n","var __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};\nimport * as React from 'react';\nimport { Popup as PopupComponent } from './Popup';\n/**\n * The PopupPropsContext. It allows to configure the Popup props from a wrapper component.\n *\n * @example\n * ```jsx-no-run\n * ({ ...props, appendTo: document.querySelector('myPopupsContainer') })}>\n * \n * \n * \n * ```\n */\nexport var PopupPropsContext = React.createContext(function (props) { return props; });\n/**\n * The KendoReact Popup component.\n */\nexport var Popup = React.forwardRef(function (props, ref) {\n var contextPropsCallback = React.useContext(PopupPropsContext);\n var popupProps = contextPropsCallback.call(undefined, props);\n return (React.createElement(PopupComponent, __assign({ ref: ref }, popupProps)));\n});\n","var __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};\nimport * as React from 'react';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar ANCHOR_VERTICAL_ALIGN = 'bottom';\n/**\n * @hidden\n */\nvar POPUP_VERTICAL_ALIGN = 'top';\n/**\n * @hidden\n */\nexport var Picker = function (props) {\n var popupSettings = props.popupSettings || {};\n var horizontalAlign = props.dir === 'rtl' ? 'right' : 'left';\n var anchorAlign = React.useMemo(function () { return ({ horizontal: horizontalAlign, vertical: ANCHOR_VERTICAL_ALIGN }); }, [horizontalAlign]);\n var popupAlign = React.useMemo(function () { return ({ horizontal: horizontalAlign, vertical: POPUP_VERTICAL_ALIGN }); }, [horizontalAlign]);\n return (React.createElement(React.Fragment, null,\n props.input,\n props.button,\n React.createElement(Popup, __assign({ style: __assign({}, (popupSettings || {}).style, { direction: props.dir }) }, popupSettings, { anchor: props.popupAnchor, anchorAlign: anchorAlign, popupAlign: popupAlign, show: props.open, onOpen: props.onOpen, onClose: props.onClose, className: classNames('k-reset', popupSettings.className) }), props.content)));\n};\nPicker.displayName = 'KendoPickerComponent';\n","var __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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, Keys, useDir, getTabIndex } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { Picker } from './Picker';\nimport { ColorGradient } from './ColorGradient';\nimport { ColorPalette, DEFAULT_PRESET, DEFAULT_TILE_SIZE } from './ColorPalette';\n/**\n * @hidden\n */\nvar DEFAULT_GRADIENT_SETTINGS = {\n opacity: true\n};\n/**\n * @hidden\n */\nvar DEFAULT_PALETTE_SETTINGS = {\n palette: DEFAULT_PRESET,\n tileSize: DEFAULT_TILE_SIZE\n};\n/**\n * @hidden\n */\nvar isControlled = function (prop) {\n return prop !== undefined;\n};\n/**\n * Represents the [KendoReact ColorPicker component]({% slug overview_colorpicker %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return ;\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var ColorPicker = React.forwardRef(function (props, target) {\n validatePackage(packageMetadata);\n var popupSettings = props.popupSettings, gradientSettings = props.gradientSettings, paletteSettings = props.paletteSettings, valid = props.valid, disabled = props.disabled, tabIndex = props.tabIndex, view = props.view, icon = props.icon, onChange = props.onChange, onFocus = props.onFocus, onBlur = props.onBlur, onActiveColorClick = props.onActiveColorClick;\n var focusableElementRef = React.useRef(null);\n var gradientRef = React.useRef(null);\n var paletteRef = React.useRef(null);\n var blurTimeoutRef = React.useRef();\n var buttonRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (focusableElementRef.current) {\n focusableElementRef.current.focus();\n }\n }, []);\n React.useImperativeHandle(target, function () { return ({\n // we agreed that each element will have focus method exposed\n element: focusableElementRef.current,\n actionElement: buttonRef.current,\n focus: focusElement\n }); });\n var _a = React.useState(false), focused = _a[0], setFocused = _a[1];\n var _b = React.useState(props.defaultValue), stateValue = _b[0], setStateValue = _b[1];\n var _c = React.useState(false), stateOpen = _c[0], setStateOpen = _c[1];\n var isValueControlled = isControlled(props.value);\n var isOpenControlled = isControlled(props.open);\n var value = isValueControlled ? props.value : stateValue;\n var open = isOpenControlled ? props.open : stateOpen;\n var setOpen = React.useCallback(function (nextOpen, isBlur) {\n if (!isOpenControlled) {\n if (!nextOpen && !isBlur && focusableElementRef && focusableElementRef.current) {\n focusableElementRef.current.focus();\n }\n setStateOpen(nextOpen);\n }\n }, [isOpenControlled]);\n var onKeyDownHandler = React.useCallback(function (event) {\n var altKey = event.altKey, keyCode = event.keyCode;\n if (keyCode === Keys.esc) {\n setOpen(false);\n return;\n }\n if (keyCode === Keys.enter && !isOpenControlled) {\n event.preventDefault();\n event.stopPropagation();\n setOpen(!open);\n return;\n }\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n if (keyCode === Keys.up && focusableElementRef && focusableElementRef.current) {\n focusableElementRef.current.focus();\n setOpen(false);\n }\n if (keyCode === Keys.down) {\n setOpen(true);\n }\n }\n }, [open, isOpenControlled]);\n var onOpenHandler = React.useCallback(function () {\n // Skip content autofocus when in controlled mode\n if (!isOpenControlled) {\n if (gradientRef.current) {\n gradientRef.current.focus();\n }\n else if (paletteRef.current) {\n paletteRef.current.focus();\n }\n }\n }, [isOpenControlled]);\n var onClickHandler = React.useCallback(function () {\n setOpen(!open, true);\n }, [open]);\n var onActiveColorClickHandler = React.useCallback(function (event) {\n if (onActiveColorClick) {\n onActiveColorClick.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: value\n });\n }\n }, [onActiveColorClick, value]);\n var onFocusHandler = React.useCallback(function (event) {\n if (blurTimeoutRef.current) {\n clearTimeout(blurTimeoutRef.current);\n blurTimeoutRef.current = undefined;\n // case where moving back to input from popup\n // if (event.target === focusableElementRef.current) {\n // setOpen(false); // in this case we should focus input on keydown\n // }\n }\n else {\n setFocused(true);\n }\n if (onFocus) {\n onFocus.call(undefined, {\n nativeEvent: event.nativeEvent,\n syntheticEvent: event\n });\n }\n }, [onFocus]);\n var onBlurTimeout = React.useCallback(function () {\n setOpen(false, true);\n setFocused(false);\n blurTimeoutRef.current = undefined;\n }, []);\n var onBlurHandler = React.useCallback(function (event) {\n clearTimeout(blurTimeoutRef.current);\n blurTimeoutRef.current = window.setTimeout(onBlurTimeout);\n if (onBlur) {\n onBlur.call(undefined, {\n nativeEvent: event.nativeEvent,\n syntheticEvent: event\n });\n }\n }, [onBlur]);\n var onChangeHandler = React.useCallback(function (event, isPalette) {\n var currentValue = isPalette ? event.rgbaValue : event.value;\n if (!isValueControlled) {\n setStateValue(currentValue);\n }\n if (isPalette) {\n setOpen(false);\n }\n if (onChange) {\n onChange.call(undefined, {\n value: currentValue,\n nativeEvent: event.nativeEvent,\n syntheticEvent: event.syntheticEvent\n });\n }\n }, [isValueControlled, onChange]);\n var onPaletteChangeHandler = React.useCallback(function (event) { return onChangeHandler(event, true); }, [isControlled, onChangeHandler]);\n var dir = useDir(focusableElementRef, props.dir);\n var iconClassName = props.iconClassName || (icon && \"k-icon k-i-\" + icon);\n var wrapperClassName = classNames({\n 'k-widget': true,\n 'k-colorpicker': true,\n 'k-state-invalid': valid === false\n });\n var className = React.useMemo(function () { return classNames({\n 'k-picker-wrap': true,\n 'k-state-disabled': disabled,\n 'k-state-focused': focused\n }); }, [focused, disabled]);\n return (React.createElement(\"span\", { className: wrapperClassName, dir: dir },\n React.createElement(\"span\", { id: props.id, \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy, className: className, ref: focusableElementRef, tabIndex: getTabIndex(tabIndex, disabled), title: props.title, onKeyDown: onKeyDownHandler, onFocus: onFocusHandler, onBlur: onBlurHandler },\n React.createElement(Picker, { dir: dir, open: open, onOpen: onOpenHandler, popupAnchor: focusableElementRef.current || undefined, popupSettings: __assign({}, popupSettings), input: (!iconClassName ? (React.createElement(\"span\", { onClick: onActiveColorClickHandler, className: 'k-selected-color', style: { backgroundColor: value } }, !value && React.createElement(\"span\", { className: 'k-icon k-i-line' }))) : (React.createElement(\"span\", { onClick: onActiveColorClickHandler, className: classNames('k-tool-icon', iconClassName) },\n React.createElement(\"span\", { className: 'k-selected-color', style: { backgroundColor: value } })))), button: (React.createElement(\"span\", { onClick: onClickHandler, className: 'k-select', ref: buttonRef },\n React.createElement(\"span\", { className: 'k-icon k-i-arrow-s' }))), content: (React.createElement(React.Fragment, null,\n (view === 'combo' || view === 'gradient') && (React.createElement(ColorGradient, __assign({}, gradientSettings, { tabIndex: 0, ref: gradientRef, value: value, onChange: onChangeHandler }))),\n (view === 'combo' || view === 'palette') && (React.createElement(ColorPalette, __assign({}, paletteSettings, { ref: paletteRef, value: value, onChange: onPaletteChangeHandler }))))) }))));\n});\nColorPicker.propTypes = {\n value: PropTypes.string,\n defaultValue: PropTypes.string,\n disabled: PropTypes.bool,\n view: PropTypes.oneOf(['gradient', 'palette', 'combo']),\n dir: PropTypes.string,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string\n};\nColorPicker.defaultProps = {\n view: 'palette',\n gradientSettings: DEFAULT_GRADIENT_SETTINGS,\n paletteSettings: DEFAULT_PALETTE_SETTINGS\n};\nColorPicker.displayName = 'KendoColorPicker';\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, validatePackage, getTabIndex } from '@progress/kendo-react-common';\nimport { ButtonGroup, Button } from '@progress/kendo-react-buttons';\nimport { ColorPalette, ColorGradient } from '../main';\nimport { packageMetadata } from '../package-metadata';\nimport { messages, flatColorPickerApplyBtn, flatColorPickerCancelBtn } from '../messages';\n;\n;\n/**\n * Represents the FlatColorPicker component.\n */\nexport var FlatColorPicker = React.forwardRef(function (props, ref) {\n validatePackage(packageMetadata);\n var target = React.useRef(null);\n var flatColorPickerRef = React.useRef(null);\n var colorGradientRef = React.useRef(null);\n var _a = React.useState((props.view || 'ColorGradient') === 'ColorGradient'), colorGradientView = _a[0], setColorGradientView = _a[1];\n var _b = React.useState('rgba(255, 255, 255, 1)'), colorValue = _b[0], setColorValue = _b[1];\n var _c = React.useState('rgba(255, 255, 255, 1)'), prevColor = _c[0], setPrevColor = _c[1];\n var focus = React.useCallback(function () {\n if (target.current) {\n target.current.focus();\n }\n }, [target]);\n React.useImperativeHandle(target, function () { return ({\n element: flatColorPickerRef.current,\n focus: focus,\n props: props\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var handleViewChange = React.useCallback(function (viewType) {\n if ((viewType === 'ColorGradient' && !colorGradientView) || (viewType === 'ColorPalette' && colorGradientView)) {\n setColorGradientView(!colorGradientView);\n }\n }, [colorGradientView]);\n var handleResetColor = React.useCallback(function () {\n setColorValue('rgba(255, 255, 255, 1)');\n }, []);\n var handleColorChange = React.useCallback(function (event) {\n setColorValue(event.value);\n }, []);\n var handleApplyBtnClick = React.useCallback(function () {\n setPrevColor(colorValue);\n }, [colorValue]);\n var handleCancelBtnClick = React.useCallback(function () {\n setPrevColor('rgba(255, 255, 255, 1)');\n }, []);\n var handlePrevColorClick = React.useCallback(function () {\n setColorValue(prevColor);\n }, [prevColor]);\n var handleFocus = React.useCallback(function () {\n if (flatColorPickerRef.current) {\n flatColorPickerRef.current.focus();\n }\n }, [flatColorPickerRef]);\n var handleFlatColorPickerBlur = React.useCallback(function () {\n setPrevColor(colorValue);\n }, [colorValue]);\n return (React.createElement(\"div\", { id: props.id, style: props.style, ref: flatColorPickerRef, tabIndex: getTabIndex(props.tabIndex, props.disabled), className: classNames('k-flatcolorpicker k-coloreditor', {\n 'k-state-disabled': props.disabled\n }, props.className), onBlur: handleFlatColorPickerBlur },\n props.header ||\n React.createElement(\"div\", { className: \"k-coloreditor-header k-hstack\" },\n React.createElement(\"div\", { className: \"k-coloreditor-header-actions k-hstack\" },\n React.createElement(ButtonGroup, null,\n React.createElement(Button, { type: \"button\", togglable: true, look: 'flat', selected: colorGradientView, onClick: function () { return handleViewChange('ColorGradient'); } },\n React.createElement(\"span\", { className: \"k-icon k-i-color-canvas\" })),\n React.createElement(Button, { type: \"button\", togglable: true, look: 'flat', selected: !colorGradientView, onClick: function () { return handleViewChange('ColorPalette'); } },\n React.createElement(\"span\", { className: \"k-icon k-i-palette\" })))),\n React.createElement(\"div\", { className: \"k-spacer\" }),\n React.createElement(\"div\", { className: \"k-coloreditor-header-actions k-hstack\" },\n (props.showClearButton && defaultProps.showClearButton) &&\n React.createElement(Button, { type: \"button\", look: 'flat', onClick: handleResetColor },\n React.createElement(\"span\", { className: \"k-icon k-i-reset-color\" })),\n (props.showPreview && defaultProps.showPreview) &&\n React.createElement(\"div\", { className: \"k-coloreditor-preview k-vstack\" },\n React.createElement(\"span\", { className: \"k-coloreditor-preview-color k-color-preview\", style: { background: colorValue } }),\n React.createElement(\"span\", { className: \"k-coloreditor-current-color k-color-preview\", style: { background: prevColor }, onClick: handlePrevColorClick })))),\n React.createElement(\"div\", { className: \"k-coloreditor-views k-vstack\" }, colorGradientView\n ? React.createElement(ColorGradient, { ref: colorGradientRef, value: colorValue, onChange: handleColorChange, onFocus: handleFocus })\n : React.createElement(ColorPalette, { value: colorValue, onChange: handleColorChange, onFocus: handleFocus })),\n (props.showButtons && defaultProps.showButtons) &&\n React.createElement(\"div\", { className: \"k-coloreditor-footer k-actions k-actions-end\" },\n React.createElement(Button, { type: \"button\", className: \"k-coloreditor-cancel\", onClick: handleCancelBtnClick }, messages[flatColorPickerCancelBtn]),\n React.createElement(Button, { type: \"button\", className: \"k-coloreditor-apply k-primary\", onClick: handleApplyBtnClick }, messages[flatColorPickerApplyBtn]))));\n});\nvar propTypes = {\n id: PropTypes.string,\n value: PropTypes.string,\n view: PropTypes.string,\n header: PropTypes.elementType,\n showClearButton: PropTypes.bool,\n showPreview: PropTypes.bool,\n showButtons: PropTypes.bool\n};\nvar defaultProps = {\n showClearButton: true,\n showPreview: true,\n showButtons: true\n};\nFlatColorPicker.displayName = 'KendoFlatColorPicker';\n// TODO: delete casting when @types/react is updated!\nFlatColorPicker.propTypes = propTypes;\nFlatColorPicker.defaultProps = defaultProps;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { guid, classNames } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the Input component.\n */\nvar Input = /** @class */ (function (_super) {\n __extends(Input, _super);\n function Input(props) {\n var _this = _super.call(this, props) || this;\n _this._inputId = guid();\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n _this.isInvalid = function (state) {\n var result = false;\n for (var prop in state) {\n if (state.hasOwnProperty(prop)) {\n result = result || state[prop];\n }\n }\n return result;\n };\n /**\n * @hidden\n */\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this.validity.valid || !_this.validityStyles\n ? _this._input.classList.remove('k-state-invalid')\n : _this._input.classList.add('k-state-invalid');\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || '');\n }\n };\n _this.handleChange = function (event) {\n _this.setState({\n value: event.target.value\n });\n _this.valueDuringOnChange = event.target.value;\n if (_this.props.onChange) {\n _this.props.onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: event.target.value,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n };\n /**\n * @hidden\n */\n _this.handleAutoFill = function (e) {\n if (e.animationName === 'autoFillStart') {\n var parent_1 = e.target.parentNode;\n if (parent_1 && parent_1.classList.contains('k-state-empty')) {\n parent_1.classList.remove('k-state-empty');\n }\n }\n };\n validatePackage(packageMetadata);\n _this.state = {\n value: _this.props.defaultValue || Input.defaultProps.defaultValue\n };\n return _this;\n }\n Object.defineProperty(Input.prototype, \"element\", {\n /**\n * Gets the native input element of the Input component.\n */\n get: function () {\n return this._input;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"value\", {\n /**\n * Gets the value of the Input.\n */\n get: function () {\n return this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"name\", {\n /**\n * Gets the `name` property of the Input.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"validity\", {\n /**\n * Represents the validity state into which the Input is set.\n */\n get: function () {\n var result = {\n badInput: this._input ? this._input.validity.badInput : false,\n patternMismatch: this._input\n ? this._input.validity.patternMismatch\n : false,\n rangeOverflow: this._input ? this._input.validity.rangeOverflow : false,\n rangeUnderflow: this._input ? this._input.validity.rangeUnderflow : false,\n stepMismatch: this._input ? this._input.validity.stepMismatch : false,\n tooLong: this._input ? this._input.validity.tooLong : false,\n typeMismatch: this._input ? this._input.validity.typeMismatch : false,\n valueMissing: this._input ? this._input.validity.valueMissing : false\n };\n return __assign({}, result, { customError: this.props.validationMessage !== undefined, valid: this.props.valid !== undefined\n ? this.props.valid\n : this._input\n ? !this.isInvalid(result)\n : true });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Input.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : Input.defaultProps.validityStyles;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n Input.prototype.componentDidMount = function () {\n this.forceUpdate();\n };\n /**\n * @hidden\n */\n Input.prototype.componentDidUpdate = function () {\n this.setValidity();\n };\n /**\n * @hidden\n */\n Input.prototype.render = function () {\n var _this = this;\n var _a = this.props, className = _a.className, label = _a.label, id = _a.id, validationMessage = _a.validationMessage, defaultValue = _a.defaultValue, valid = _a.valid, \n // Removed to support direct use in Form Field component\n visited = _a.visited, touched = _a.touched, modified = _a.modified, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy, validityStyles = _a.validityStyles, style = _a.style, props = __rest(_a, [\"className\", \"label\", \"id\", \"validationMessage\", \"defaultValue\", \"valid\", \"visited\", \"touched\", \"modified\", \"ariaLabelledBy\", \"ariaDescribedBy\", \"validityStyles\", \"style\"]);\n var inputId = id || this._inputId;\n var isValid = !this.validityStyles || this.validity.valid;\n var inputClassName = classNames(className, 'k-textbox');\n var textbox = (React.createElement(\"input\", __assign({ \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, props, { style: !label\n ? style\n : undefined, value: this.value, id: inputId, className: inputClassName, onChange: this.handleChange, onAnimationStart: this.handleAutoFill, ref: function (el) {\n _this._input = el;\n } })));\n return label ?\n (React.createElement(FloatingLabel, { label: label, editorId: inputId, editorValue: String(this.value), editorValid: isValid, editorDisabled: props.disabled, editorPlaceholder: props.placeholder, children: textbox, style: style, dir: props.dir }))\n : textbox;\n };\n /**\n * @hidden\n */\n Input.propTypes = {\n label: PropTypes.string,\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string\n };\n /**\n * @hidden\n */\n Input.defaultProps = {\n defaultValue: '',\n required: false,\n validityStyles: true\n };\n return Input;\n}(React.Component));\nexport { Input };\n","/**\n * @hidden\n */\nexport var ResultType;\n(function (ResultType) {\n ResultType[ResultType[\"Literal\"] = 0] = \"Literal\";\n ResultType[ResultType[\"Mask\"] = 1] = \"Mask\";\n ResultType[ResultType[\"Undefined\"] = 2] = \"Undefined\";\n})(ResultType || (ResultType = {}));\n/**\n * @hidden\n */\nvar Result = /** @class */ (function () {\n function Result(value, rest, type) {\n if (type === void 0) { type = ResultType.Undefined; }\n this.value = value;\n this.rest = rest;\n this.type = type;\n }\n // map :: Functor f => f a ~> (a -> b) -> f b\n Result.prototype.map = function (fn) {\n return new Result(fn(this.value), this.rest);\n };\n // chain :: Chain m => m a ~> (a -> m b) -> m b\n Result.prototype.chain = function (fn) {\n return fn(this.value, this.rest);\n };\n Result.prototype.fold = function (s, _ /* we don't need it*/) {\n return s(this.value, this.rest);\n };\n Result.prototype.concat = function (r) {\n return this.map(function (vs, _) { return r.chain(function (v, __) { return vs.concat([v]); }); });\n };\n Result.prototype.toString = function () {\n return \"Result({ value: '\" + this.value + \"', rest: \" + this.rest + \" })\";\n };\n return Result;\n}());\nexport { Result };\n","/**\n * @hidden\n */\nvar Stream = /** @class */ (function () {\n function Stream(input, control) {\n if (input === void 0) { input = []; }\n if (control === void 0) { control = []; }\n this.input = input;\n this.control = control;\n this.inputCursor = 0;\n this.controlCursor = 0;\n }\n Stream.prototype.eof = function () {\n return this.inputCursor >= this.input.length;\n };\n // Get the first value from the input.\n Stream.prototype.next = function () {\n return {\n char: this.input[this.inputCursor++],\n control: this.control[this.controlCursor++]\n };\n };\n Stream.prototype.peek = function () {\n return {\n char: this.input[this.inputCursor],\n control: this.control[this.controlCursor]\n };\n };\n Stream.prototype.eat_input = function () {\n this.inputCursor++;\n };\n Stream.prototype.eat_control = function () {\n this.controlCursor++;\n };\n Stream.prototype.eat = function () {\n this.inputCursor++;\n this.controlCursor++;\n };\n return Stream;\n}());\nexport { Stream };\n","import { Result, ResultType } from './result';\nimport { Stream } from './stream';\nvar toArray = function (value) { return (value || '').split(''); };\nvar ESCAPE_CHARACTER = '\\\\';\n/**\n * @hidden\n */\nvar Parser = /** @class */ (function () {\n function Parser(parse) {\n this.parse = parse;\n }\n Parser.prototype.run = function (input, control) {\n if (control === void 0) { control = ''; }\n if (input instanceof Stream) {\n return this.parse(input);\n }\n else {\n return this.parse(new Stream(toArray(input), toArray(control)));\n }\n };\n // map :: Functor f => f a ~> (a -> b) -> f b\n Parser.prototype.map = function (f) {\n var _this = this;\n return new Parser(function (stream) { return _this.parse(stream).map(f); });\n };\n // chain :: Chain m => m a ~> (a -> m b) -> m b\n Parser.prototype.chain = function (f) {\n var _this = this;\n return new Parser(function (stream) { return _this.parse(stream).chain(function (v, s) { return f(v).run(s); }); });\n };\n Parser.prototype.isLiteral = function (c) {\n return this.run(c).type === ResultType.Literal;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * @hidden\n */\nexport var mask = function (_a) {\n var prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder;\n return function (rule) { return new Parser(function (stream) {\n while (!stream.eof()) {\n var _a = stream.peek(), char = _a.char, control = _a.control;\n if (char === control && control === prompt) {\n stream.eat();\n return new Result(prompt, stream, ResultType.Mask);\n }\n if (rule.test(char)) {\n stream.eat();\n return new Result(char, stream, ResultType.Mask);\n }\n if (char === promptPlaceholder) {\n stream.eat();\n return new Result(prompt, stream, ResultType.Mask);\n }\n stream.eat_input();\n }\n stream.eat();\n return new Result(prompt, stream, ResultType.Mask);\n }); };\n};\n/**\n * @hidden\n */\nexport var literal = function (_token) { return new Parser(function (stream) {\n // let {char, control} = stream.peek();\n var char = stream.peek().char;\n if (char === _token) {\n stream.eat();\n return new Result(_token, stream, ResultType.Literal);\n }\n // if (control === _token) {\n // while (!stream.eof() && char !== _token) {\n // stream.eat_input();\n // char = stream.peek().char;\n // }\n // }\n //\n // if (control !== undefined) {\n // stream.eat();\n // }\n return new Result(_token, stream, ResultType.Literal);\n}); };\n/**\n * @hidden\n */\nexport var unmask = function (prompt) { return function (rule) { return new Parser(function (stream) {\n while (!stream.eof()) {\n var _a = stream.peek(), char = _a.char, control = _a.control;\n if (char === prompt && control === prompt) {\n stream.eat();\n return new Result(char, stream);\n }\n if (rule.test(char)) {\n stream.eat();\n return new Result(char, stream);\n }\n stream.eat_input();\n }\n stream.eat();\n return new Result('', stream);\n}); }; };\n/**\n * @hidden\n */\nexport var unliteral = function (_token) { return new Parser(function (stream) {\n if (stream.eof()) {\n return new Result('', stream);\n }\n var char = stream.peek().char;\n if (char === _token) {\n stream.eat();\n }\n return new Result(_token, stream);\n}); };\n/**\n * @hidden\n */\nexport var token = function (rules, creator) { return new Parser(function (stream) {\n var char = stream.next().char;\n var rule = rules[char];\n if (char === ESCAPE_CHARACTER) {\n char = stream.next().char;\n return new Result(creator.literal(char), stream);\n }\n if (!rule) {\n return new Result(creator.literal(char), stream);\n }\n return new Result(creator.mask(rule), stream);\n}); };\n/**\n * @hidden\n */\nexport var rawMask = function (_a) {\n var prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder;\n return new Parser(function (stream) {\n var char = stream.next().char;\n if (char === prompt) {\n return new Result(promptPlaceholder, stream);\n }\n return new Result(char, stream);\n });\n};\n/**\n * @hidden\n */\nexport var rawLiteral = function (includeLiterals) { return new Parser(function (stream) {\n var char = stream.next().char;\n if (includeLiterals) {\n return new Result(char, stream);\n }\n return new Result('', stream);\n}); };\n","import { Parser } from './parsers';\nimport { Result } from './result';\n/**\n * @hidden\n */\nvar always = function (value) { return new Parser(function (stream) { return new Result(value, stream); }); };\n/**\n * @hidden\n */\nvar append = function (p1, p2) { return p1.chain(function (vs) { return p2.map(function (v) { return vs.concat([v]); }); }); };\n/**\n * @hidden\n */\nexport var sequence = function (list) { return list.reduce(function (acc, parser) { return append(acc, parser); }, always([])); };\n/**\n * @hidden\n */\nexport var greedy = function (parser) { return new Parser(function (stream) {\n var result = new Result([], stream);\n while (!stream.eof()) {\n result = result.concat(parser.run(stream));\n }\n return result;\n}); };\n","import { greedy, sequence } from './parsing/combinators';\nimport { literal, mask as maskParser, rawLiteral, rawMask, token, unliteral, unmask } from './parsing/parsers';\n/**\n * @hidden\n */\nvar MaskingService = /** @class */ (function () {\n function MaskingService() {\n this.rules = {};\n this.prompt = '_';\n this.mask = '';\n this.promptPlaceholder = ' ';\n this.includeLiterals = false;\n this.maskTokens = [];\n this.unmaskTokens = [];\n this.rawTokens = [];\n this.validationTokens = [];\n }\n MaskingService.prototype.update = function (_a) {\n var _b = _a.mask, mask = _b === void 0 ? '' : _b, _c = _a.prompt, prompt = _c === void 0 ? '' : _c, _d = _a.promptPlaceholder, promptPlaceholder = _d === void 0 ? ' ' : _d, _e = _a.rules, rules = _e === void 0 ? {} : _e, _f = _a.includeLiterals, includeLiterals = _f === void 0 ? false : _f;\n this.mask = mask;\n this.prompt = prompt;\n this.promptPlaceholder = promptPlaceholder;\n this.rules = rules;\n this.includeLiterals = includeLiterals;\n this.tokenize();\n };\n MaskingService.prototype.validationValue = function (maskedValue) {\n if (maskedValue === void 0) { maskedValue = ''; }\n var value = maskedValue;\n sequence(this.validationTokens)\n .run(maskedValue)\n .fold(function (unmasked) {\n value = unmasked.join('');\n });\n return value;\n };\n MaskingService.prototype.rawValue = function (maskedValue) {\n if (maskedValue === void 0) { maskedValue = ''; }\n var value = maskedValue;\n if (!this.rawTokens.length) {\n return value;\n }\n sequence(this.rawTokens)\n .run(maskedValue)\n .fold(function (unmasked) {\n value = unmasked.join('');\n });\n return value;\n };\n /**\n * @hidden\n */\n MaskingService.prototype.maskRaw = function (rawValue) {\n if (rawValue === void 0) { rawValue = ''; }\n var value = rawValue;\n if (!this.maskTokens.length) {\n return value;\n }\n sequence(this.maskTokens)\n .run(rawValue)\n .fold(function (masked) {\n value = masked.join('');\n });\n return value;\n };\n MaskingService.prototype.maskInput = function (input, control, splitPoint) {\n if (input.length < control.length) {\n return this.maskRemoved(input, control, splitPoint);\n }\n return this.maskInserted(input, control, splitPoint);\n };\n MaskingService.prototype.maskInRange = function (pasted, oldValue, start, end) {\n var value = '';\n var selection = end;\n var beforeChange = oldValue.split('').slice(0, start);\n var afterChange = oldValue.split('').slice(end);\n sequence(this.maskTokens.slice(start, end))\n .run(pasted)\n .fold(function (masked) {\n value = beforeChange\n .concat(masked)\n .concat(afterChange)\n .join('');\n });\n return {\n selection: selection,\n value: value\n };\n };\n MaskingService.prototype.maskRemoved = function (input, control, splitPoint) {\n var _this = this;\n var value = '';\n var selection = splitPoint;\n var unchanged = input.split('').slice(splitPoint);\n var changed = input.split('').slice(0, splitPoint).join('');\n var take = this.maskTokens.length - (input.length - splitPoint);\n sequence(this.maskTokens.slice(0, take))\n .run(changed, control)\n .fold(function (masked) {\n selection = _this.adjustPosition(masked, selection);\n value = masked.concat(unchanged).join('');\n });\n return {\n selection: selection,\n value: value\n };\n };\n MaskingService.prototype.adjustPosition = function (input, selection) {\n var caretChar = input[selection];\n var isLiteral = this.maskTokens[selection].isLiteral(caretChar);\n if (!isLiteral && caretChar !== this.prompt) {\n return selection + 1;\n }\n return selection;\n };\n MaskingService.prototype.maskInserted = function (input, control, splitPoint) {\n var _this = this;\n var value = '';\n var selection = splitPoint;\n var changed = input.slice(0, splitPoint);\n sequence(this.unmaskTokens)\n .run(changed, control)\n .chain(function (unmasked) {\n selection = unmasked.join('').length;\n var unchanged = control.slice(selection);\n return sequence(_this.maskTokens)\n .run(unmasked.join('') + unchanged, control);\n })\n .fold(function (masked) {\n value = masked.join('');\n });\n return {\n selection: selection,\n value: value\n };\n };\n Object.defineProperty(MaskingService.prototype, \"maskTokenCreator\", {\n get: function () {\n var _a = this, prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder;\n return {\n literal: function (rule) { return literal(rule); },\n mask: function (rule) { return maskParser({ prompt: prompt, promptPlaceholder: promptPlaceholder })(rule); }\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MaskingService.prototype, \"unmaskTokenCreator\", {\n get: function () {\n var _this = this;\n return {\n literal: function (rule) { return unliteral(rule); },\n mask: function (rule) { return unmask(_this.prompt)(rule); }\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MaskingService.prototype, \"rawTokenCreator\", {\n get: function () {\n var _a = this, prompt = _a.prompt, promptPlaceholder = _a.promptPlaceholder, includeLiterals = _a.includeLiterals;\n return {\n literal: function (_) { return rawLiteral(includeLiterals); },\n mask: function (_) { return rawMask({ prompt: prompt, promptPlaceholder: promptPlaceholder }); }\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MaskingService.prototype, \"validationTokenCreator\", {\n get: function () {\n var prompt = this.prompt;\n return {\n literal: function (_) { return rawLiteral(false); },\n mask: function (_) { return rawMask({ prompt: prompt, promptPlaceholder: '' }); }\n };\n },\n enumerable: true,\n configurable: true\n });\n MaskingService.prototype.tokenize = function () {\n var _this = this;\n greedy(token(this.rules, this.maskTokenCreator))\n .run(this.mask)\n .fold(function (tokens, _) {\n _this.maskTokens = tokens;\n });\n greedy(token(this.rules, this.unmaskTokenCreator))\n .run(this.mask)\n .fold(function (tokens, _) {\n _this.unmaskTokens = tokens;\n });\n greedy(token(this.rules, this.rawTokenCreator))\n .run(this.mask)\n .fold(function (tokens, _) {\n _this.rawTokens = tokens;\n });\n greedy(token(this.rules, this.validationTokenCreator))\n .run(this.mask)\n .fold(function (tokens, _) {\n _this.validationTokens = tokens;\n });\n };\n return MaskingService;\n}());\nexport { MaskingService };\n","/**\n * @hidden\n */\nvar defaultRules = {\n '#': /[\\d\\s\\+\\-]/,\n '&': /[\\S]/,\n '0': /[\\d]/,\n '9': /[\\d\\s]/,\n '?': /[a-zA-Z\\s]/,\n 'A': /[a-zA-Z0-9]/,\n 'C': /./,\n 'L': /[a-zA-Z]/,\n 'a': /[a-zA-Z0-9\\s]/\n};\n/**\n * @hidden\n */\nvar returnFalse = function () { return false; };\n/**\n * @hidden\n */\nvar maskingChanged = function (prev, next) {\n return prev.includeLiterals !== next.includeLiterals ||\n prev.mask !== next.mask ||\n prev.prompt !== next.prompt ||\n prev.promptPlaceholder !== next.promptPlaceholder ||\n !sameRules(prev.rules, next.rules);\n};\n/**\n * @hidden\n */\nvar sameRules = function (rules1, rules2) {\n if (!!rules1 !== !!rules2) {\n return false;\n }\n if (rules1 === rules2 || (!rules1 || !rules2)) {\n return true;\n }\n var same = true;\n for (var key in rules1) {\n if (rules1[key] !== rules2[key]) {\n same = false;\n break;\n }\n }\n if (same) {\n for (var key in rules2) {\n if (!rules1.hasOwnProperty(key)) {\n same = false;\n break;\n }\n }\n }\n return same;\n};\nexport { defaultRules, maskingChanged, returnFalse };\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { MaskingService } from './masking.service';\nimport { defaultRules, maskingChanged, returnFalse } from './utils';\nimport { guid, classNames, getTabIndex } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the props of the [KendoReact MaskedTextBox component]({% slug overview_maskedtextbox %}).\n */\nvar MaskedTextBox = /** @class */ (function (_super) {\n __extends(MaskedTextBox, _super);\n function MaskedTextBox(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {};\n _this._inputId = \"k-\" + guid();\n _this._service = new MaskingService();\n _this._isPasted = false;\n _this._selection = [null, null];\n _this._input = null;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._input) {\n _this._input.focus();\n }\n };\n _this.pasteHandler = function (event) {\n var _a = event.target, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n if (selectionEnd === selectionStart) {\n return;\n }\n _this._isPasted = true;\n _this._selection = [selectionStart || 0, selectionEnd || 0];\n };\n _this.onChangeHandler = function (event) {\n var input = event.currentTarget;\n var value = input.value;\n var start = _this._selection[0] || 0;\n var end = _this._selection[1] || 0;\n if (!_this.props.mask) {\n _this._isPasted = false;\n _this._selection = [null, null];\n _this.triggerOnChange(value, event);\n return;\n }\n var maskedValue = _this.value;\n var result;\n if (_this._isPasted) {\n _this._isPasted = false;\n var rightPart = maskedValue.length - end;\n var to = value.length - rightPart;\n result = _this._service.maskInRange(value.slice(start, to), maskedValue, start, end);\n }\n else {\n result = _this._service.maskInput(value, maskedValue, input.selectionStart || 0);\n }\n _this._selection = [result.selection, result.selection];\n _this.triggerOnChange(result.value, event);\n };\n _this.focusHandler = function (event) {\n if (!_this.state.focused) {\n _this.setState({ focused: true });\n if (_this.props.onFocus) {\n _this.props.onFocus.call(undefined, {\n target: _this,\n syntheticEvent: event,\n nativeEvent: event.nativeEvent\n });\n }\n }\n };\n _this.blurHandler = function (event) {\n if (_this.state.focused) {\n _this.setState({ focused: false });\n if (_this.props.onBlur) {\n _this.props.onBlur.call(undefined, {\n target: _this,\n syntheticEvent: event,\n nativeEvent: event.nativeEvent\n });\n }\n }\n };\n _this.setValidity = function () {\n if (_this.element) {\n _this.element.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || '');\n }\n };\n validatePackage(packageMetadata);\n return _this;\n }\n Object.defineProperty(MaskedTextBox.prototype, \"element\", {\n /**\n * Gets the element of the MaskedTextBox.\n *\n * @return - An `HTMLInputElement`.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * constructor(props) {\n * super(props);\n * }\n * element = null;\n * render() {\n * return (\n *
    \n * \n * this.element = component ? component.element : null}\n * />\n * \n *
    \n * );\n * }\n * }\n *\n * ReactDOM.render(\n * ,\n * document.getElementsByTagName('my-app')[0]\n * );\n * ```\n */\n get: function () {\n return this._input;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MaskedTextBox.prototype, \"value\", {\n /**\n * Gets the value with the mask of the MaskedTextBox.\n */\n get: function () {\n if (this._valueDuringOnChange !== undefined) {\n return this._valueDuringOnChange;\n }\n else if (this.props.value !== undefined) {\n return this.props.value;\n }\n else if (this.state.value !== undefined) {\n return this.state.value;\n }\n else if (this.props.defaultValue !== undefined) {\n return this.props.defaultValue;\n }\n return '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MaskedTextBox.prototype, \"rawValue\", {\n /**\n * Gets the raw value without the mask of the MaskedTextBox.\n */\n get: function () {\n return this._service.rawValue(this.value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MaskedTextBox.prototype, \"validity\", {\n /**\n * Represents the validity state into which the MaskedTextBox is set.\n */\n get: function () {\n var maskedValue = this.value;\n var value = this._service.validationValue(maskedValue);\n var customError = this.props.validationMessage !== undefined;\n var valid = (this.props.valid !== undefined ?\n this.props.valid : ((!this.required || !!value)) &&\n (!this.props.maskValidation || !this.props.prompt || maskedValue.indexOf(this.props.prompt) === -1));\n return {\n customError: customError,\n valid: valid,\n valueMissing: !value\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MaskedTextBox.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : MaskedTextBox.defaultProps.validityStyles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MaskedTextBox.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : MaskedTextBox.defaultProps.required;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MaskedTextBox.prototype, \"name\", {\n /**\n * Gets the `name` property of the MaskedTextBox.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n MaskedTextBox.prototype.componentDidUpdate = function (prevProps, prevState) {\n if (this.element && this.state.focused && prevState.focused) {\n var _a = this._selection, start = _a[0], end = _a[1];\n var prevSelection = prevProps.selection;\n var nextSelection = this.props.selection;\n if ((!prevSelection && nextSelection) ||\n (prevSelection && nextSelection &&\n (prevSelection.start !== nextSelection.start || prevSelection.end !== nextSelection.end))) {\n start = nextSelection.start;\n end = nextSelection.end;\n }\n if (start !== null && end !== null) {\n this.element.setSelectionRange(start, end);\n }\n }\n if (maskingChanged(prevProps, this.props)) {\n this.updateService();\n }\n this.setValidity();\n };\n /**\n * @hidden\n */\n MaskedTextBox.prototype.componentDidMount = function () {\n this.updateService();\n this.setValidity();\n };\n /**\n * @hidden\n */\n MaskedTextBox.prototype.render = function () {\n var _this = this;\n var inputId = this.props.id || this._inputId;\n var isValid = !this.validityStyles || this.validity.valid;\n var style = this.props.style || {};\n var component = (React.createElement(\"span\", { dir: this.props.dir, className: classNames('k-widget k-maskedtextbox', this.props.className, {\n 'k-state-focused': this.state.focused,\n 'k-state-disabled': this.props.disabled,\n 'k-state-invalid': !isValid\n }), style: !this.props.label\n ? __assign({ width: this.props.width }, style) : style },\n React.createElement(\"input\", { type: \"text\", autoComplete: \"off\", autoCorrect: \"off\", autoCapitalize: \"off\", spellCheck: false, className: \"k-textbox\", value: this.value, id: inputId, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, name: this.props.name, tabIndex: getTabIndex(this.props.tabIndex, this.props.disabled, true), accessKey: this.props.accessKey, title: this.props.title, disabled: this.props.disabled || undefined, readOnly: this.props.readonly || undefined, placeholder: this.props.placeholder, ref: function (input) { return _this._input = input; }, onChange: this.onChangeHandler, onPaste: this.pasteHandler, onFocus: this.focusHandler, onBlur: this.blurHandler, onDragStart: returnFalse, onDrop: returnFalse })));\n return this.props.label\n ? (React.createElement(FloatingLabel, { label: this.props.label, editorId: inputId, editorValue: this.value, editorValid: isValid, editorDisabled: this.props.disabled, editorPlaceholder: this.props.placeholder, children: component, style: { width: this.props.width }, dir: this.props.dir }))\n : component;\n };\n MaskedTextBox.prototype.triggerOnChange = function (maskedValue, event) {\n this.setState({\n value: maskedValue\n });\n if (this.props.onChange) {\n this._valueDuringOnChange = maskedValue;\n this.props.onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n selectionStart: this._selection[0],\n selectionEnd: this._selection[1],\n target: this,\n value: this.value\n });\n this._valueDuringOnChange = undefined;\n }\n };\n MaskedTextBox.prototype.updateService = function (extra) {\n var config = Object.assign({\n includeLiterals: this.props.includeLiterals,\n mask: this.props.mask,\n prompt: this.props.prompt,\n promptPlaceholder: this.props.promptPlaceholder,\n rules: this.rules\n }, extra); // tslint:disable-line:align\n this._service.update(config);\n };\n Object.defineProperty(MaskedTextBox.prototype, \"rules\", {\n get: function () {\n return Object.assign({}, defaultRules, this.props.rules);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n MaskedTextBox.propTypes = {\n value: PropTypes.string,\n defaultValue: PropTypes.string,\n placeholder: PropTypes.string,\n title: PropTypes.string,\n dir: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n disabled: PropTypes.bool,\n readonly: PropTypes.bool,\n prompt: PropTypes.string,\n promptPlaceholder: PropTypes.string,\n includeLiterals: PropTypes.bool,\n maskValidation: PropTypes.bool,\n mask: PropTypes.string,\n rules: function (props, propName, componentName) {\n var rules = props.rules;\n if (rules !== undefined) {\n var valid = Object.entries(rules)\n .some(function (e) { return typeof e !== 'string' || !(rules[e] instanceof RegExp); });\n if (!valid) {\n return new Error('Invalid prop `' + propName + '` supplied to' +\n ' `' + componentName + '`. Validation failed.');\n }\n return null;\n }\n },\n selection: PropTypes.shape({\n start: PropTypes.number.isRequired,\n end: PropTypes.number.isRequired\n }),\n name: PropTypes.string,\n label: PropTypes.string,\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n valid: PropTypes.bool,\n validityStyles: PropTypes.bool,\n onChange: PropTypes.func\n };\n /**\n * @hidden\n */\n MaskedTextBox.defaultProps = {\n prompt: '_',\n promptPlaceholder: ' ',\n includeLiterals: false,\n maskValidation: true,\n rules: defaultRules,\n required: false,\n validityStyles: true\n };\n return MaskedTextBox;\n}(React.Component));\nexport { MaskedTextBox };\n","var __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 DEFAULT_NUMBER = 1111111.1111111;\nvar MAX_DECIMAL = 0.31111111111111117;\nvar MIN_DECIMAL = 1;\nvar ONE_NUMBER = 1;\nvar ZERO_NUMBER = 0;\nvar DIGITS_REGEX = /\\d/;\nvar MAX_PRECISION = 15;\n/**\n * @hidden\n */\nexport var getInitialState = function () { return ({\n eventValue: null,\n prevLooseValue: '',\n currentLooseValue: '',\n focused: false,\n selectionStart: undefined,\n selectionEnd: undefined,\n decimalSelect: false,\n valueIsCorrected: false,\n valueIsOutOfRange: false\n}); };\n/**\n * @hidden\n */\nexport var getStateOrPropsValue = function (value, stateValue) {\n return value !== undefined ? value : stateValue;\n};\n/**\n * @hidden\n */\nexport var formatValue = function (value, format, intlService) {\n if (value === null && value === undefined) {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n return intlService.formatNumber(value, format);\n};\n/**\n * @hidden\n */\nexport var fractionLength = function (value) {\n return (String(value).split('.')[1] || '').length;\n};\n/**\n * @hidden\n */\nvar maxFractionLength = function (value1, value2) {\n return Math.max(fractionLength(value1), fractionLength(value2));\n};\n/**\n * @hidden\n */\nexport var limitPrecision = function (precision) { return Math.min(precision, MAX_PRECISION); };\n/**\n * @hidden\n */\nexport var toFixedPrecision = function (value, precision) {\n var maxPrecision = limitPrecision(precision);\n return parseFloat(value.toFixed(maxPrecision));\n};\n/**\n * @hidden\n */\nexport var increaseValue = function (value, newState, step, min, max, format, intlService) {\n var maxPrecision = maxFractionLength(value || 0, step || 0);\n var increasedValue = rangeValue(toFixedPrecision((value || 0) + (step || 0), maxPrecision), min, max);\n newState.eventValue = increasedValue;\n newState.currentLooseValue = formatValue(increasedValue, format, intlService);\n newState.selectionStart = newState.selectionEnd = getLastNumberIndex(newState.currentLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\nexport var decreaseValue = function (value, newState, step, min, max, format, intlService) {\n var maxPrecision = maxFractionLength(value || 0, step || 0);\n var decreasedValue = rangeValue(toFixedPrecision((value || 0) - (step || 0), maxPrecision), min, max);\n newState.eventValue = decreasedValue;\n newState.currentLooseValue = formatValue(decreasedValue, format, intlService);\n newState.selectionStart = newState.selectionEnd = getLastNumberIndex(newState.currentLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\nexport var rangeValue = function (value, min, max) {\n if (value == null) {\n return value;\n }\n if (!(value > 1 || value < 1 || value === 1)) {\n // null, undefined or NaN\n return null;\n }\n if (max !== undefined && min !== undefined && max < min) {\n return null;\n }\n if (max !== undefined && value > max) {\n value = max;\n }\n if (min !== undefined && value < min) {\n value = min;\n }\n return value;\n};\n/**\n * @hidden\n */\nexport var getMaxCursorPosition = function (nextValue, formatInfo) {\n var formatSuffixIndex = formatInfo.findIndex(function (_a) {\n var _ = _a[0], currSuffix = _a[1];\n return Boolean(currSuffix) && nextValue.indexOf(currSuffix) === nextValue.length - currSuffix.length;\n });\n if (formatSuffixIndex === -1) {\n return -1;\n }\n var suffix = formatInfo[formatSuffixIndex][1];\n return nextValue.length - suffix.length;\n};\n/**\n * @hidden\n */\nexport var getMinCursorPosition = function (nextValue, formatInfo) {\n var formatPrefixIndex = formatInfo.findIndex(function (_a) {\n var currPrefix = _a[0], _ = _a[1];\n return Boolean(currPrefix) && nextValue.indexOf(currPrefix) === 0;\n });\n if (formatPrefixIndex === -1) {\n return -1;\n }\n var prefix = formatInfo[formatPrefixIndex][0];\n return prefix.length;\n};\n/**\n * @hidden\n */\nexport var rangeSelection = function (nextLooseValue, formatInfo, newState) {\n var maxPosition = getMaxCursorPosition(nextLooseValue, formatInfo);\n if (maxPosition !== -1 && newState.selectionStart > maxPosition) {\n newState.selectionStart = newState.selectionEnd = maxPosition;\n return;\n }\n if (newState.selectionStart > nextLooseValue.length) {\n newState.selectionStart = newState.selectionEnd = nextLooseValue.length;\n }\n var minPosition = getMinCursorPosition(nextLooseValue, formatInfo);\n if (minPosition !== -1 && newState.selectionStart < minPosition) {\n newState.selectionStart = newState.selectionEnd = minPosition;\n }\n if (newState.selectionStart === -1) {\n newState.selectionStart = newState.selectionEnd = 0;\n }\n};\n/**\n * @hidden\n */\nexport var setSelection = function (newState, newIndex, nextLooseValue, formatInfo) {\n newState.selectionStart = newState.selectionEnd = newIndex;\n rangeSelection(nextLooseValue, formatInfo, newState);\n};\n/**\n * @hidden\n */\nexport var setInvalid = function (newState, format, formatInfo, intlService) {\n newState.eventValue = intlService.parseNumber(newState.prevLooseValue, format);\n newState.currentLooseValue = newState.prevLooseValue;\n newState.valueIsCorrected = true;\n setSelection(newState, newState.selectionStart, newState.currentLooseValue, formatInfo);\n};\n/**\n * @hidden\n */\nexport var isMinusSymbolAdded = function (newState, symbols) {\n var newText = String(newState.currentLooseValue);\n var oldText = String(newState.prevLooseValue);\n return (newText.split(symbols.minusSign).length !== oldText.split(symbols.minusSign).length &&\n newText.length === oldText.length + symbols.minusSign.length);\n};\n/**\n * @hidden\n */\nexport var isMinusSymbolRemoved = function (newState, symbols) {\n var newText = String(newState.currentLooseValue);\n var oldText = String(newState.prevLooseValue);\n return (newText.indexOf(symbols.minusSign) === -1 && oldText.indexOf(symbols.minusSign) !== -1);\n};\n/**\n * @hidden\n */\nexport var isDecimalDuplicated = function (newState, symbols) {\n var newText = String(newState.currentLooseValue);\n return newText.split(symbols.decimal).length > 2;\n};\n/**\n * @hidden\n */\nexport var getFormatPrefixSufix = function (format, intlService) {\n var positiveResult = intlService.formatNumber(DEFAULT_NUMBER, format);\n var negativeResult = intlService.formatNumber(-DEFAULT_NUMBER, format);\n var zeroResult = intlService.formatNumber(ZERO_NUMBER, format);\n var oneResult = intlService.formatNumber(ONE_NUMBER, format);\n var positivePrefix = getPrefix(positiveResult);\n var negativePrefix = getPrefix(negativeResult);\n var zeroPrefix = getPrefix(zeroResult);\n var onePrefix = getPrefix(oneResult);\n var positiveSuffix = getSuffix(positiveResult);\n var negativeSuffix = getSuffix(negativeResult);\n var zeroSuffix = getSuffix(zeroResult);\n var oneSuffix = getSuffix(oneResult);\n return {\n positiveInfo: [positivePrefix, positiveSuffix],\n negativeInfo: [negativePrefix, negativeSuffix],\n zeroInfo: [zeroPrefix, zeroSuffix],\n oneInfo: [onePrefix, oneSuffix]\n };\n};\n/**\n * @hidden\n */\nexport var getFormatSymbols = function (format, intlService) {\n var positiveResult = intlService.formatNumber(DEFAULT_NUMBER, format);\n var negativeResult = intlService.formatNumber(-DEFAULT_NUMBER, format);\n var zeroResult = intlService.formatNumber(ZERO_NUMBER, format);\n var oneResult = intlService.formatNumber(ONE_NUMBER, format);\n var symbols = intlService.numberSymbols();\n var sanitizeRegex = new RegExp(\"[\\\\d\\\\\" + symbols.decimal + symbols.group + \"]\", 'g');\n var resultWithDuplicates = [positiveResult, negativeResult, zeroResult, oneResult]\n .map(function (result) { return result.replace(sanitizeRegex, ''); })\n .join('');\n return resultWithDuplicates\n .split('')\n .filter(function (x, n, s) { return s.indexOf(x) === n; })\n .join('');\n};\n/**\n * @hidden\n */\nexport var getInitialPosition = function (nextLooseValue, symbols) {\n var decimalIdex = nextLooseValue.indexOf(symbols.decimal);\n if (decimalIdex > -1) {\n return decimalIdex;\n }\n return getLastNumberIndex(nextLooseValue, DIGITS_REGEX);\n};\n/**\n * @hidden\n */\nexport var reverseString = function (str) {\n return str.split('').reverse().join('');\n};\n/**\n * @hidden\n */\nexport var getLastNumberIndex = function (currentLooseValue, inputRegex) {\n return currentLooseValue.length - reverseString(currentLooseValue).search(inputRegex);\n};\n/**\n * @hidden\n */\nexport var getPrefix = function (str) {\n return str.split(str[str.search(DIGITS_REGEX)])[0];\n};\n/**\n * @hidden\n */\nexport var getSuffix = function (str) {\n var reversedString = reverseString(str);\n return reverseString(reversedString.split(reversedString[reversedString.search(DIGITS_REGEX)])[0]);\n};\n/**\n * @hidden\n */\nexport var getFirstNumberIndex = function (prevLooseValue, inputRegex) {\n return prevLooseValue.search(inputRegex);\n};\n/**\n * @hidden\n */\nexport var getDecimalCount = function (value, decimal) {\n var currentDecimalPlace = value.indexOf(decimal);\n return currentDecimalPlace > -1 ? value.length - currentDecimalPlace - 1 : 0;\n};\n/**\n * @hidden\n */\nexport var changeBasedSelection = function (currentValue, nextValue, selectionPosition, isDelete, sanitizeRegex) {\n var isCurrentLeadingZero = currentValue.replace(sanitizeRegex, '')[0] === '0';\n var isNextLeadingZero = nextValue.replace(sanitizeRegex, '')[0] === '0';\n if (isCurrentLeadingZero && !isNextLeadingZero) {\n return selectionPosition - 1;\n }\n if (isNextLeadingZero && isDelete) {\n return selectionPosition + 1;\n }\n var numberCounter = 0;\n for (var idx = 0; idx < selectionPosition; idx++) {\n if (DIGITS_REGEX.test(currentValue.charAt(idx))) {\n numberCounter++;\n }\n }\n var newSelection = 0;\n while (numberCounter > 0 && nextValue.length > newSelection) {\n if (DIGITS_REGEX.test(nextValue.charAt(newSelection))) {\n numberCounter--;\n }\n newSelection++;\n }\n return newSelection;\n};\n/**\n * @hidden\n */\nexport var sanitizeNumber = function (state, format, intlService) {\n var newState = __assign({}, state);\n var prevLooseValue = newState.prevLooseValue;\n var symbols = intlService.numberSymbols();\n var restrictedSymbols = getFormatSymbols(format, intlService);\n var currentLooseValueAsString = String(newState.currentLooseValue);\n var prevLooseValueAsString = String(prevLooseValue);\n var sanitizeRegex = new RegExp(\"[^\\\\d\\\\\" + symbols.decimal + \"]\", 'g');\n var sanitizeGroupRegex = new RegExp(\"[^\\\\d\\\\\" + symbols.decimal + \"\\\\\" + symbols.group + \"]\", 'g');\n var allSymbolsRegex = new RegExp(\"[\\\\d\\\\\" + symbols.decimal + \"\\\\\" + symbols.group + \"]\");\n var sanitizedString = currentLooseValueAsString.replace(sanitizeRegex, '');\n var numberStart = getFirstNumberIndex(currentLooseValueAsString, DIGITS_REGEX);\n var numberEnd = numberStart === -1 ? -1 : getLastNumberIndex(currentLooseValueAsString, DIGITS_REGEX);\n var decimalIndex = currentLooseValueAsString.indexOf(symbols.decimal);\n var sanitizedFormattedString = (currentLooseValueAsString.substring(0, numberStart) +\n currentLooseValueAsString.substring(numberStart, numberEnd).replace(sanitizeGroupRegex, '') +\n currentLooseValueAsString.substring(numberEnd, currentLooseValueAsString.length))\n .split('')\n .filter(function (s) { return restrictedSymbols.indexOf(s) !== -1 || s.search(allSymbolsRegex) !== -1; })\n .join('');\n var formattedMax = intlService.formatNumber(MAX_DECIMAL, format).replace(sanitizeRegex, '');\n var maxDecimalIndex = formattedMax.indexOf(symbols.decimal);\n var maxDecimalCount = maxDecimalIndex > -1 ? formattedMax.length - maxDecimalIndex - 1 : 0;\n var formattedMin = intlService.formatNumber(MIN_DECIMAL, format).replace(sanitizeRegex, '');\n var minDecimalIndex = formattedMin.indexOf(symbols.decimal);\n var minDecimalCount = minDecimalIndex > -1 ? formattedMin.length - minDecimalIndex - 1 : 0;\n var _a = getFormatPrefixSufix(format, intlService), positiveInfo = _a.positiveInfo, negativeInfo = _a.negativeInfo, zeroInfo = _a.zeroInfo, oneInfo = _a.oneInfo;\n var formatInfo = [positiveInfo, negativeInfo, zeroInfo, oneInfo];\n var isFormatContainPrefixSuffix = formatInfo.findIndex(function (info) { return info.findIndex(function (nestedInfo) { return Boolean(nestedInfo); }) !== -1; }) !== 1;\n var isDelete = currentLooseValueAsString.length > 0 && currentLooseValueAsString.length < prevLooseValueAsString.length;\n var isPercentFormat = format &&\n format[0] === 'p' &&\n currentLooseValueAsString &&\n currentLooseValueAsString.indexOf(symbols.percentSign) === -1;\n if (!newState.isPaste) {\n // 1. Empty input\n if (currentLooseValueAsString === '') {\n newState.eventValue = null;\n newState.currentLooseValue = '';\n return newState;\n }\n // 2. Check is minus sign\n if (newState.currentLooseValue === symbols.minusSign && intlService.formatNumber(-0, format) !== prevLooseValueAsString) {\n newState.eventValue = -0;\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n setSelection(newState, getInitialPosition(newState.currentLooseValue, symbols), newState.currentLooseValue, formatInfo);\n return newState;\n }\n // 3. Minus sign toggle\n if (isMinusSymbolAdded(newState, symbols)) {\n var nextValue = intlService.parseNumber(prevLooseValue, format);\n newState.eventValue = -(nextValue !== null ? nextValue : 0);\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n var currentNumberStart = getFirstNumberIndex(newState.currentLooseValue, DIGITS_REGEX);\n var oldNumberStart = getFirstNumberIndex(prevLooseValueAsString, DIGITS_REGEX);\n setSelection(newState, newState.selectionEnd - 1 + (currentNumberStart - oldNumberStart), newState.currentLooseValue, formatInfo);\n return newState;\n }\n if (isMinusSymbolRemoved(newState, symbols)) {\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n setSelection(newState, newState.selectionStart, newState.currentLooseValue, formatInfo);\n return newState;\n }\n // 4. Check is decimal symbol\n if (newState.currentLooseValue === symbols.decimal) {\n newState.eventValue = 0;\n var valueCandidate = formatValue(newState.eventValue, format, intlService);\n if (minDecimalCount === 0 && maxDecimalCount > 0) {\n var currentLastNumberIndex = getLastNumberIndex(valueCandidate, DIGITS_REGEX);\n newState.currentLooseValue = valueCandidate.substring(0, currentLastNumberIndex) +\n symbols.decimal +\n valueCandidate.substring(currentLastNumberIndex);\n }\n else {\n newState.currentLooseValue = valueCandidate;\n }\n setSelection(newState, getInitialPosition(newState.currentLooseValue, symbols) + 1, newState.currentLooseValue, formatInfo);\n return newState;\n }\n // 5. Duplicate decimal - it's possible only as trailing\n if (isDecimalDuplicated(newState, symbols)) {\n setInvalid(newState, format, formatInfo, intlService);\n return newState;\n }\n // 6. Percent format\n if (isPercentFormat) {\n newState.eventValue = intlService.parseNumber(currentLooseValueAsString, format) / 100;\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n return newState;\n }\n // 7. More than 15 numeric symbols\n var numericSymbols = String(newState.currentLooseValue).replace(/[^\\d]/g, '');\n if (numericSymbols.length > MAX_PRECISION) {\n setInvalid(newState, format, formatInfo, intlService);\n return newState;\n }\n // 8. Check prefix / suffix for modifications\n if (sanitizedString !== currentLooseValueAsString &&\n currentLooseValueAsString &&\n isFormatContainPrefixSuffix) {\n var formatInfoIndex = formatInfo.findIndex(function (_a) {\n var prefix = _a[0], suffix = _a[1];\n var prefixIndex = currentLooseValueAsString.indexOf(prefix);\n var suffixIndex = currentLooseValueAsString.indexOf(suffix);\n var prefixFound = prefixIndex === 0;\n var suffixFound = suffixIndex === currentLooseValueAsString.length - suffix.length;\n var prefixGap = prefixIndex + prefix.length !== numberStart &&\n numberStart !== -1 &&\n currentLooseValueAsString[prefixIndex + prefix.length] !== symbols.decimal;\n var suffixGap = suffixIndex !== numberEnd &&\n numberEnd !== -1 &&\n currentLooseValueAsString[suffixIndex - 1] !== symbols.decimal;\n if (prefix && suffix) {\n if (prefixGap || suffixGap) {\n return false;\n }\n return prefixFound && suffixFound;\n }\n if (prefix) {\n if (prefixGap) {\n return false;\n }\n return prefixFound;\n }\n if (suffix) {\n if (suffixGap) {\n return false;\n }\n return suffixFound;\n }\n return false;\n });\n if (formatInfoIndex === -1) {\n setInvalid(newState, format, formatInfo, intlService);\n return newState;\n }\n }\n // 9. Value ending on decimal separator (here as decimal might be typed inside format)\n if (sanitizedString[sanitizedString.length - 1] === symbols.decimal && maxDecimalCount > 0) {\n newState.eventValue = intlService.parseNumber(currentLooseValueAsString, format);\n newState.currentLooseValue = sanitizedFormattedString;\n return newState;\n }\n // 10. prevent deleting decimal and group symbols\n if (newState.currentLooseValue && prevLooseValue) {\n var isSpecialSymbolDeleted = (restrictedSymbols + symbols.decimal + symbols.group)\n .split('')\n .findIndex(function (s) {\n if (currentLooseValueAsString.split('').filter(function (x) { return x === s; }).length <\n prevLooseValueAsString.split('').filter(function (x) { return x === s; }).length &&\n currentLooseValueAsString.length + 1 === prevLooseValueAsString.length) {\n if (s === symbols.decimal &&\n getDecimalCount(prevLooseValueAsString.replace(sanitizeRegex, ''), symbols.decimal) === 0) {\n return false;\n }\n return true;\n }\n return false;\n }) > -1;\n if (isSpecialSymbolDeleted) {\n newState.eventValue = intlService.parseNumber(state.prevLooseValue, format);\n newState.currentLooseValue = state.prevLooseValue;\n return newState;\n }\n }\n var currentDecimalCount = getDecimalCount(sanitizedString, symbols.decimal);\n var endsOnDecimal = sanitizedString[sanitizedString.length - 1] === '0';\n // 11. Deleting more decimals than allowed\n if (isDelete && endsOnDecimal && currentDecimalCount < minDecimalCount) {\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n return newState;\n }\n // 12. Ending on zero OR more decimals than allowed\n if (currentDecimalCount > 0) {\n var valueUntillDecimal = currentLooseValueAsString.substring(0, decimalIndex);\n if (endsOnDecimal && (!valueUntillDecimal || prevLooseValueAsString.indexOf(valueUntillDecimal) !== 0)) {\n // ending on zero but typing before decimal separator\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n var nextLooseValue = formatValue(newState.eventValue, format, intlService);\n setSelection(newState, changeBasedSelection(currentLooseValueAsString, nextLooseValue, newState.selectionEnd, isDelete, sanitizeRegex), nextLooseValue, formatInfo);\n newState.currentLooseValue = nextLooseValue;\n return newState;\n }\n if (currentDecimalCount > maxDecimalCount) {\n // typing more symbols than format allows\n var looseDecimalPlace = currentLooseValueAsString.indexOf(symbols.decimal);\n var result = currentLooseValueAsString.substring(0, looseDecimalPlace) +\n currentLooseValueAsString.substring(looseDecimalPlace, looseDecimalPlace + 1 + maxDecimalCount) +\n currentLooseValueAsString.substring(numberEnd, String(newState.currentLooseValue).length);\n newState.eventValue = intlService.parseNumber(result, format);\n newState.currentLooseValue = result;\n setSelection(newState, newState.selectionStart, result, formatInfo);\n return newState;\n }\n if (minDecimalCount !== maxDecimalCount && currentDecimalCount <= maxDecimalCount && endsOnDecimal) {\n // adding trailing zeroes\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n newState.currentLooseValue = sanitizedFormattedString;\n return newState;\n }\n if (currentDecimalCount < minDecimalCount) {\n // deleting more decimals than allowed\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n newState.currentLooseValue = formatValue(newState.eventValue, format, intlService);\n return newState;\n }\n }\n }\n // X. All other values should be parsed\n newState.eventValue = intlService.parseNumber(newState.currentLooseValue, format);\n if (isPercentFormat) {\n newState.eventValue = newState.eventValue / 100;\n }\n if (typeof newState.eventValue === 'number') {\n var nextLooseValue = formatValue(newState.eventValue, format, intlService);\n // First digit add\n if (currentLooseValueAsString.length === 1) {\n setSelection(newState, getInitialPosition(nextLooseValue, symbols), nextLooseValue, formatInfo);\n }\n else {\n setSelection(newState, changeBasedSelection(currentLooseValueAsString, nextLooseValue, newState.selectionEnd, isDelete, sanitizeRegex), nextLooseValue, formatInfo);\n }\n newState.currentLooseValue = nextLooseValue;\n }\n else {\n // Case when deleting last number\n newState.currentLooseValue = formatValue(intlService.parseNumber(sanitizedString), format, intlService);\n }\n return newState;\n};\n","import * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { useInternationalization, useLocalization } from '@progress/kendo-react-intl';\nimport { classNames, guid, getTabIndex, dispatchEvent } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { numericIncreaseValue, messages, numericDecreaseValue } from '../messages';\nimport { formatValue, sanitizeNumber, rangeValue, increaseValue, decreaseValue, getStateOrPropsValue, getInitialState } from './utils';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n/**\n * Represents the [KendoReact NumericTextBox component]({% slug overview_numerictextbox %}).\n */\nexport var NumericTextBox = React.forwardRef(function (props, target) {\n validatePackage(packageMetadata);\n var calculatedId = React.useMemo(function () { return guid(); }, []);\n var inputId = props.id || calculatedId;\n var intlService = useInternationalization();\n var localizationService = useLocalization();\n var elementRef = React.useRef(null);\n var elementWrapperRef = React.useRef(null);\n var valueDuringChangeRef = React.useRef();\n var _a = React.useState(false), forceUpdate = _a[0], setForceUpdate = _a[1];\n var stateRef = React.useRef(getInitialState());\n var isPasteRef = React.useRef(false);\n var prevLooseValueRef = React.useRef();\n var stateValueRef = React.useRef(props.defaultValue);\n var looseValue = formatValue(stateRef.current.focused && !props.disabled ?\n stateRef.current.currentLooseValue :\n getStateOrPropsValue(props.value, stateValueRef.current), props.format, intlService);\n prevLooseValueRef.current = looseValue;\n React.useEffect(function () {\n if (elementRef.current && elementRef.current.setCustomValidity) {\n elementRef.current.setCustomValidity(validityGetter().valid\n ? ''\n : props.validationMessage || VALIDATION_MESSAGE);\n }\n });\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n var valueGetter = React.useCallback(function () {\n if (valueDuringChangeRef.current !== undefined) {\n return valueDuringChangeRef.current;\n }\n else {\n return getStateOrPropsValue(props.value, stateValueRef.current);\n }\n }, [props.value]);\n var nameGetter = React.useCallback(function () {\n return props.name;\n }, [props.name]);\n var requiredGetter = React.useCallback(function () {\n return props.required;\n }, [props.required]);\n var validityGetter = React.useCallback(function () {\n var customError = props.validationMessage !== undefined;\n var currentValue = valueGetter();\n var valid = props.valid !== undefined ?\n props.valid :\n !stateRef.current.valueIsOutOfRange &&\n (!requiredGetter() || (currentValue !== null && currentValue !== undefined));\n return {\n customError: customError,\n valid: valid,\n valueMissing: currentValue === null || currentValue === undefined\n };\n }, [props.validationMessage, props.valid, valueGetter, requiredGetter]);\n var validityStylesGetter = React.useCallback(function () {\n return props.validityStyles;\n }, [props.validityStyles]);\n var propsGetter = React.useCallback(function () {\n return props;\n }, [props]);\n var getImperativeHandle = React.useCallback(function () {\n var options = {\n element: elementRef.current,\n focus: focusElement\n };\n Object.defineProperty(options, 'name', { get: nameGetter });\n Object.defineProperty(options, 'value', { get: valueGetter });\n Object.defineProperty(options, 'validity', { get: validityGetter });\n Object.defineProperty(options, 'validityStyles', { get: validityStylesGetter });\n Object.defineProperty(options, 'required', { get: requiredGetter });\n Object.defineProperty(options, 'props', { get: propsGetter });\n return options;\n }, [nameGetter, valueGetter, validityGetter, validityStylesGetter, requiredGetter, focusElement, propsGetter]);\n React.useImperativeHandle(target, getImperativeHandle);\n var getCurrentState = React.useCallback(function () {\n return {\n eventValue: getStateOrPropsValue(props.value, stateValueRef.current),\n prevLooseValue: prevLooseValueRef.current,\n currentLooseValue: elementRef.current.value,\n selectionStart: elementRef.current.selectionStart,\n selectionEnd: elementRef.current.selectionEnd,\n decimalSelect: false,\n valueIsCorrected: false,\n valueIsOutOfRange: false,\n isPaste: isPasteRef.current,\n focused: stateRef.current.focused\n };\n }, [props.value]);\n var triggerChange = React.useCallback(function (event, newState) {\n if (props.disabled) {\n return;\n }\n valueDuringChangeRef.current = newState.eventValue;\n stateValueRef.current = newState.eventValue;\n var formattedValue = formatValue(rangeValue(newState.eventValue, props.min, props.max), props.format, intlService);\n var rangedValue = rangeValue(intlService.parseNumber(formattedValue, props.format), props.min, props.max);\n if (rangedValue !== newState.eventValue) {\n newState.valueIsOutOfRange = true;\n newState.eventValue = rangedValue;\n stateValueRef.current = rangedValue;\n }\n if (newState.valueIsCorrected) {\n var wrapper_1 = elementWrapperRef.current;\n if (wrapper_1 && wrapper_1.className.indexOf('k-state-invalid') === -1) {\n wrapper_1.className += ' k-state-invalid';\n window.setTimeout(function () { return wrapper_1.className = wrapper_1.className.replace(' k-state-invalid', ''); }, 50);\n }\n }\n var shouldFireEvent = props.value !== newState.eventValue;\n if (shouldFireEvent) {\n dispatchEvent(props.onChange, event, getImperativeHandle(), { value: newState.eventValue });\n }\n valueDuringChangeRef.current = undefined;\n stateRef.current = newState;\n setForceUpdate(function (_x) { return !_x; });\n }, [props.value, props.onChange, props.disabled, setForceUpdate, getImperativeHandle]);\n var onChangeHandler = React.useCallback(function (event) {\n var stateCandidate = getCurrentState();\n isPasteRef.current = false;\n triggerChange(event, sanitizeNumber(stateCandidate, props.format, intlService));\n }, [props.format, props.onChange, intlService, triggerChange, getCurrentState]);\n var onKeyDown = React.useCallback(function (event) {\n var newState = getCurrentState();\n var currentValue = intlService.parseNumber(String(newState.currentLooseValue), props.format);\n // Select All\n if (newState.selectionEnd > newState.selectionStart &&\n newState.selectionEnd - newState.selectionStart === String(newState.currentLooseValue).length) {\n isPasteRef.current = true;\n return;\n }\n switch (event.keyCode) {\n case 38:\n // Arrow up\n increaseValue(currentValue, newState, props.step, props.min, props.max, props.format, intlService);\n break;\n case 40:\n // Arrow down\n decreaseValue(currentValue, newState, props.step, props.min, props.max, props.format, intlService);\n break;\n case 13:\n // Enter - range values\n if (props.rangeOnEnter === false) {\n return;\n }\n var formattedValue = formatValue(rangeValue(currentValue, props.min, props.max), props.format, intlService);\n var rangedValue = rangeValue(intlService.parseNumber(formattedValue, props.format), props.min, props.max);\n newState.eventValue = rangedValue;\n newState.currentLooseValue = formatValue(rangedValue, props.format, intlService);\n newState.selectionStart = newState.selectionEnd = newState.currentLooseValue.length;\n break;\n case 110:\n // Numpad decimal key\n var element = elementRef.current;\n var symbols = intlService.numberSymbols();\n if (element) {\n newState.currentLooseValue = newState.currentLooseValue.slice(0, newState.selectionStart) +\n symbols.decimal +\n newState.currentLooseValue.slice(newState.selectionEnd);\n newState.selectionStart = newState.selectionEnd = newState.selectionStart + 1;\n newState = sanitizeNumber(newState, props.format, intlService);\n }\n break;\n default:\n return;\n }\n event.preventDefault();\n triggerChange(event, newState);\n }, [props.format, props.min, props.max, props.step, props.onChange, props.rangeOnEnter, triggerChange, getCurrentState]);\n var onPasteHandler = React.useCallback(function () {\n isPasteRef.current = true;\n }, []);\n var onIncrease = React.useCallback(function (event) {\n if (props.readOnly ||\n props.disabled) {\n return;\n }\n var newState = getCurrentState();\n increaseValue(intlService.parseNumber(String(newState.currentLooseValue), props.format), newState, props.step, props.min, props.max, props.format, intlService);\n triggerChange(event, newState);\n }, [props.format, props.min, props.max, props.step, props.onChange, props.readOnly, props.disabled, triggerChange, getCurrentState]);\n var onDecrease = React.useCallback(function (event) {\n if (props.readOnly ||\n props.disabled) {\n return;\n }\n var newState = getCurrentState();\n decreaseValue(intlService.parseNumber(String(newState.currentLooseValue), props.format), newState, props.step, props.min, props.max, props.format, intlService);\n triggerChange(event, newState);\n }, [props.format, props.min, props.max, props.step, props.onChange, props.readOnly, props.disabled, triggerChange, getCurrentState]);\n var onWheelHandler = React.useCallback(function (event) {\n if (!document ||\n document.activeElement !== elementRef.current ||\n !elementRef.current ||\n props.readOnly ||\n props.disabled) {\n return;\n }\n if (event.nativeEvent.deltaY < 0) {\n onIncrease(event);\n }\n if (event.nativeEvent.deltaY > 0) {\n onDecrease(event);\n }\n }, [onIncrease, onDecrease, props.disabled, props.readOnly]);\n var onFocus = React.useCallback(function (event) {\n stateRef.current.currentLooseValue = prevLooseValueRef.current;\n stateRef.current.focused = true;\n dispatchEvent(props.onFocus, event, getImperativeHandle(), {});\n setForceUpdate(function (x) { return !x; });\n }, [props.onFocus, setForceUpdate, getImperativeHandle]);\n var onBlur = React.useCallback(function (event) {\n stateRef.current = getInitialState();\n dispatchEvent(props.onBlur, event, getImperativeHandle(), {});\n setForceUpdate(function (x) { return !x; });\n }, [props.onBlur, setForceUpdate, getImperativeHandle]);\n var onMouseDown = React.useCallback(function (e) {\n if (document && elementRef.current) {\n e.preventDefault();\n if (document.activeElement !== elementRef.current) {\n elementRef.current.focus();\n }\n }\n }, []);\n React.useLayoutEffect(function () {\n if (elementRef.current && stateRef.current.selectionStart !== undefined && stateRef.current.selectionEnd !== undefined) {\n elementRef.current.selectionStart = stateRef.current.selectionStart;\n elementRef.current.selectionEnd = stateRef.current.selectionEnd;\n stateRef.current.selectionStart = undefined;\n stateRef.current.selectionEnd = undefined;\n }\n }, [forceUpdate]);\n var isValid = !validityStylesGetter() || validityGetter().valid;\n var numerictextbox = (React.createElement(\"span\", { dir: props.dir, style: !props.label\n ? { width: props.width }\n : undefined, className: 'k-widget k-numerictextbox' + (props.className ? ' ' + props.className : ''), \"aria-disabled\": props.disabled ? 'true' : undefined },\n React.createElement(\"span\", { className: classNames('k-numeric-wrap', {\n 'k-state-disabled': props.disabled,\n 'k-state-invalid': !isValid,\n 'k-state-focused': stateRef.current.focused\n }), ref: elementWrapperRef },\n React.createElement(\"input\", { value: looseValue === null ? '' : looseValue, tabIndex: getTabIndex(props.tabIndex, props.disabled), accessKey: props.accessKey, disabled: props.disabled, title: props.title, \"aria-valuemin\": props.min, \"aria-valuemax\": props.max, \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy, placeholder: props.placeholder, spellCheck: false, autoComplete: 'off', autoCorrect: 'off', type: props.inputType || 'tel', className: 'k-input k-formatted-value', id: inputId, name: props.name, readOnly: props.readOnly, onChange: onChangeHandler, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, onPaste: onPasteHandler, onWheel: onWheelHandler, ref: elementRef }),\n props.children,\n props.spinners &&\n (React.createElement(\"span\", { className: \"k-select\", onMouseDown: onMouseDown },\n React.createElement(\"span\", { className: \"k-link k-link-increase\", \"aria-label\": localizationService\n .toLanguageString(numericIncreaseValue, messages[numericIncreaseValue]), title: localizationService\n .toLanguageString(numericIncreaseValue, messages[numericIncreaseValue]), onClick: onIncrease },\n React.createElement(\"span\", { className: \"k-icon k-i-arrow-n\" })),\n React.createElement(\"span\", { className: \"k-link k-link-decrease\", \"aria-label\": localizationService\n .toLanguageString(numericDecreaseValue, messages[numericDecreaseValue]), title: localizationService\n .toLanguageString(numericDecreaseValue, messages[numericDecreaseValue]), onClick: onDecrease },\n React.createElement(\"span\", { className: \"k-icon k-i-arrow-s\" })))))));\n return props.label\n ? (React.createElement(FloatingLabel, { label: props.label, editorId: inputId, editorValue: looseValue === null ? '' : looseValue, editorValid: isValid, editorDisabled: props.disabled, editorPlaceholder: props.placeholder, children: numerictextbox, style: { width: props.width }, dir: props.dir }))\n : numerictextbox;\n});\nNumericTextBox.propTypes = {\n value: PropTypes.number,\n defaultValue: PropTypes.number,\n step: PropTypes.number,\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n style: PropTypes.oneOf(['decimal', 'currency', 'percent', 'scientific', 'accounting']),\n currency: PropTypes.string,\n currencyDisplay: PropTypes.oneOf(['symbol', 'code', 'name']),\n useGrouping: PropTypes.bool,\n minimumIntegerDigits: PropTypes.number,\n minimumFractionDigits: PropTypes.number,\n maximumFractionDigits: PropTypes.number\n })\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n tabIndex: PropTypes.number,\n accessKey: PropTypes.string,\n title: PropTypes.string,\n placeholder: PropTypes.string,\n min: PropTypes.number,\n max: PropTypes.number,\n spinners: PropTypes.bool,\n disabled: PropTypes.bool,\n readOnly: PropTypes.bool,\n dir: PropTypes.string,\n name: PropTypes.string,\n label: PropTypes.string,\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n id: PropTypes.string,\n rangeOnEnter: PropTypes.bool,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n};\nNumericTextBox.displayName = 'KendoNumericTextBox';\nNumericTextBox.defaultProps = {\n step: 1,\n spinners: true,\n disabled: false,\n required: false,\n validityStyles: true,\n rangeOnEnter: true,\n onChange: function (_) { return; },\n onFocus: function (_) { return; },\n onBlur: function (_) { return; }\n};\n","var __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};\nimport * as React from 'react';\nimport { useDir } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nexport var SLIDER_LABEL_ATTRIBUTE = 'data-slider-label';\n/**\n * Represents the KendoReact SliderLabel component.\n */\nexport var SliderLabel = function (props) {\n var _a, _b;\n var sliderLabelRef = React.useRef(null);\n var dir = useDir(sliderLabelRef);\n var style = props.vertical\n ? { bottom: props.position + \"%\", height: '1px', width: '100%' }\n : (_a = {}, _a[dir === 'rtl' ? 'right' : 'left'] = props.position + \"%\", _a.width = '1px', _a);\n return (React.createElement(\"li\", { ref: sliderLabelRef, role: \"presentation\", className: \"k-tick k-tick-large\", title: props.title, style: __assign({ zIndex: 1, position: 'absolute' }, style) },\n React.createElement(\"span\", __assign({}, (_b = {}, _b[SLIDER_LABEL_ATTRIBUTE] = true, _b), { className: \"k-label\", onClick: props.onClick }), props.children)));\n};\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { dispatchEvent, Keys, classNames, Draggable, getTabIndex } from '@progress/kendo-react-common';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, sliderIncreaseValue, sliderDecreaseValue, sliderDragTitle } from './../messages';\nimport { SLIDER_LABEL_ATTRIBUTE } from './SliderLabel';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * Represents the [KendoReact Slider component]({% slug overview_slider%}).\n */\nvar Slider = /** @class */ (function (_super) {\n __extends(Slider, _super);\n function Slider(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {\n value: _this.props.defaultValue === undefined ? _this.props.min : _this.props.defaultValue,\n focused: false,\n dir: _this.props.dir\n };\n /**\n * @hidden\n */\n _this.buttons = function (props) {\n if (!props.enabled) {\n return props.children;\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(\"a\", { className: \"k-button k-button-decrease\", style: { position: 'relative' }, title: props.decrementTitle, onClick: props.decrement },\n React.createElement(\"span\", { className: classNames('k-icon', {\n 'k-i-arrow-s': _this.props.vertical,\n 'k-i-arrow-w': !_this.props.vertical\n }) })),\n props.children,\n React.createElement(\"a\", { className: \"k-button k-button-increase\", style: { position: 'relative' }, title: props.incrementTitle, onClick: props.increment },\n React.createElement(\"span\", { className: classNames('k-icon', {\n 'k-i-arrow-n': _this.props.vertical,\n 'k-i-arrow-e': !_this.props.vertical\n }) }))));\n };\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._element) {\n _this._element.focus();\n }\n };\n _this.isLabel = function (target) {\n var currentTarget = target;\n while (currentTarget) {\n if (Boolean(currentTarget.getAttribute(SLIDER_LABEL_ATTRIBUTE))) {\n return true;\n }\n currentTarget = currentTarget.parentElement;\n }\n return false;\n };\n _this.onFocus = function () {\n _this.setState({ focused: true });\n };\n _this.onBlur = function () {\n _this.setState({ focused: false });\n };\n _this.onKeyDown = function (e) {\n var newValue = undefined;\n if (e.keyCode === Keys.left || e.keyCode === Keys.down) {\n newValue = _this.state.value - (_this.props.step || 0);\n }\n else if (e.keyCode === Keys.right || e.keyCode === Keys.up) {\n newValue = _this.state.value + (_this.props.step || 0);\n }\n else if (e.keyCode === Keys.home) {\n newValue = _this.props.min;\n }\n else if (e.keyCode === Keys.end) {\n newValue = _this.props.max;\n }\n if (newValue !== undefined) {\n e.preventDefault();\n _this.change(e, newValue);\n }\n };\n _this.decrement = function (e) {\n e.preventDefault();\n _this.change(e, _this.state.value - (_this.props.step || 0));\n };\n _this.increment = function (e) {\n e.preventDefault();\n _this.change(e, _this.state.value + (_this.props.step || 0));\n };\n _this.dragStart = function (e) {\n if (!_this.isLabel(e.event.originalEvent.target)) {\n if (e.event.isTouch) {\n e.event.originalEvent.preventDefault();\n }\n _this.drag(e);\n }\n };\n _this.dragOver = function (e) {\n e.event.originalEvent.preventDefault();\n _this.drag(e);\n };\n _this.drag = function (e) {\n var computed = e.element.getBoundingClientRect();\n var distance = _this.props.vertical\n ? (computed.bottom - e.event.clientY)\n : (_this.state.dir === 'rtl'\n ? computed.right - e.event.clientX\n : e.event.clientX - computed.left);\n var size = _this.props.vertical ? computed.height : computed.width;\n var percentage = (distance / size);\n _this.change(e, _this.props.min + percentage * (_this.props.max - _this.props.min));\n };\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n Slider.getDerivedStateFromProps = function (props, state) {\n var value = props.value !== undefined ? props.value : state.value;\n var min = props.min, max = props.max;\n return value === undefined ? null :\n { value: Math.min(Math.max(value, min), max) };\n };\n /**\n * @hidden\n */\n Slider.prototype.componentDidMount = function () {\n if (!this.state.dir && window && this._element) {\n // Note: getComputedStyle forces reflow\n var direction = window.getComputedStyle(this._element).direction;\n if (direction) {\n this.setState({ dir: direction });\n }\n }\n };\n /**\n * @hidden\n */\n Slider.prototype.render = function () {\n var _this = this;\n var _a, _b;\n var lS = provideLocalizationService(this);\n var percentValue = ((this.state.value - this.props.min) / (this.props.max - this.props.min)) * 100;\n var trackStyles = this.props.vertical\n ? { marginTop: '0.5rem', marginBottom: '0.5rem' }\n : { marginLeft: '0.5rem', marginRight: '0.5rem' };\n var sliderItemsStyle = this.props.vertical\n ? { paddingTop: 0, height: '100%' }\n : {};\n return (React.createElement(\"div\", { ref: function (el) { return _this._element = el; }, \"aria-valuemin\": this.props.min, \"aria-valuemax\": this.props.max, \"aria-valuenow\": this.state.value, \"aria-disabled\": this.props.disabled ? 'true' : undefined, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, dir: this.state.dir, role: \"slider\", id: this.props.id, style: this.props.style, tabIndex: getTabIndex(this.props.tabIndex, this.props.disabled, undefined), onFocus: this.onFocus, onBlur: this.onBlur, onKeyDown: this.onKeyDown, className: classNames('k-slider k-widget', {\n 'k-state-focused': this.state.focused,\n 'k-state-disabled': this.props.disabled,\n 'k-slider-horizontal': !this.props.vertical,\n 'k-slider-vertical': this.props.vertical\n }, this.props.className) },\n React.createElement(\"div\", { className: classNames('k-slider-wrap', {\n 'k-slider-buttons': this.props.buttons\n }), style: {\n display: 'flex',\n position: 'relative',\n flexDirection: this.props.vertical ? 'column-reverse' : 'row'\n } },\n React.createElement(this.buttons, { enabled: this.props.buttons, decrement: this.decrement, increment: this.increment, incrementTitle: lS.toLanguageString(sliderIncreaseValue, messages[sliderIncreaseValue]), decrementTitle: lS.toLanguageString(sliderDecreaseValue, messages[sliderDecreaseValue]) },\n React.createElement(Draggable, { onDrag: this.dragOver, onPress: this.dragStart },\n React.createElement(\"div\", { className: \"k-slider-track-wrap\", style: __assign({ flexGrow: 1, position: 'relative', touchAction: 'none' }, trackStyles) },\n this.props.children && (React.createElement(\"ul\", { className: \"k-reset k-slider-items\", style: __assign({ margin: 0 }, sliderItemsStyle) }, React.Children.map(this.props.children, function (child) {\n return child && React.cloneElement(child, {\n position: 100 * (child.props.position - _this.props.min) /\n (_this.props.max - _this.props.min),\n vertical: _this.props.vertical\n }, child.props.children);\n }))),\n React.createElement(\"div\", { className: \"k-slider-track\", style: this.props.vertical\n ? { bottom: 0, height: '100%' }\n : (_a = {}, _a[this.state.dir === 'rtl' ? 'right' : 'left'] = 0, _a.width = '100%', _a), ref: function (el) { return _this._sliderTrack = el; } },\n React.createElement(\"div\", { className: \"k-slider-selection\", style: this.props.vertical\n ? { height: percentValue + '%' }\n : { width: percentValue + '%' } }),\n React.createElement(\"a\", { className: \"k-draghandle\", title: lS.toLanguageString(sliderDragTitle, messages[sliderDragTitle]), style: this.props.vertical\n ? { bottom: 'calc(' + percentValue + '% - 8px)', zIndex: 1 }\n : (_b = {},\n _b[this.state.dir === 'rtl' ? 'right' : 'left'] = 'calc(' + percentValue + '% - 8px)',\n _b.zIndex = 1,\n _b) }))))))));\n };\n Object.defineProperty(Slider.prototype, \"sliderTrack\", {\n /**\n * @hidden\n */\n get: function () {\n return this._sliderTrack;\n },\n enumerable: true,\n configurable: true\n });\n Slider.prototype.change = function (e, value) {\n value = Math.min(Math.max(value, this.props.min), this.props.max);\n this.setState({ value: value });\n dispatchEvent(this.props.onChange, e, this, { value: value });\n };\n /**\n * @hidden\n */\n Slider.propTypes = {\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n value: PropTypes.number,\n vertical: PropTypes.bool,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string\n // TODO: validation when buttons is set to true, but no step is provided\n };\n return Slider;\n}(React.Component));\nexport { Slider };\nregisterForLocalization(Slider);\n","var __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};\n/**\n * @hidden\n */\nexport var RANGE_ACTION;\n(function (RANGE_ACTION) {\n RANGE_ACTION[\"start\"] = \"start\";\n RANGE_ACTION[\"end\"] = \"end\";\n RANGE_ACTION[\"min\"] = \"min\";\n RANGE_ACTION[\"max\"] = \"max\";\n RANGE_ACTION[\"increase\"] = \"increase\";\n RANGE_ACTION[\"decrease\"] = \"decrease\";\n})(RANGE_ACTION || (RANGE_ACTION = {}));\n/**\n * @hidden\n */\nexport var rangeReducer = function (state, action) {\n var newState;\n var newValue;\n switch (action.type) {\n case RANGE_ACTION.start:\n if (action.payload === undefined) {\n return state;\n }\n newState = {\n start: action.payload > state.end ? state.end : Math.max(action.payload, action.min),\n end: state.end\n };\n break;\n case RANGE_ACTION.end:\n if (action.payload === undefined) {\n return state;\n }\n newState = {\n start: state.start,\n end: action.payload < state.start ? state.start : Math.min(action.payload, action.max)\n };\n break;\n case RANGE_ACTION.min:\n if (action.key === 'start') {\n newState = __assign({}, state, { start: action.min });\n }\n else {\n newState = __assign({}, state, { end: Math.max(action.min, state.start) });\n }\n break;\n case RANGE_ACTION.max:\n if (action.key === 'start') {\n newState = __assign({}, state, { start: Math.min(action.max, state.end) });\n }\n else {\n newState = __assign({}, state, { end: action.max });\n }\n break;\n case RANGE_ACTION.increase:\n if (action.step === undefined || action.key === undefined) {\n return state;\n }\n newValue = state[action.key] + action.step;\n if (action.key === 'start') {\n if (newValue < action.min) {\n newState = __assign({}, state, { start: action.min });\n }\n else {\n newState = __assign({}, state, { start: Math.min(newValue, state.end) });\n }\n }\n else {\n if (newValue > action.max) {\n newState = __assign({}, state, { end: action.max });\n }\n else {\n newState = __assign({}, state, { end: Math.max(newValue, state.start) });\n }\n }\n break;\n case RANGE_ACTION.decrease:\n if (action.step === undefined || action.key === undefined) {\n return state;\n }\n newValue = state[action.key] - action.step;\n if (action.key === 'start') {\n if (newValue < action.min) {\n newState = __assign({}, state, { start: action.min });\n }\n else {\n newState = __assign({}, state, { start: Math.min(newValue, state.end) });\n }\n }\n else {\n if (newValue > action.max) {\n newState = __assign({}, state, { end: action.max });\n }\n else {\n newState = __assign({}, state, { end: Math.max(newValue, state.start) });\n }\n }\n break;\n default:\n newState = state;\n break;\n }\n return newState;\n};\n","var __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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, Keys, useDir, useDraggable, getTabIndex } from '@progress/kendo-react-common';\nimport { messages, sliderDragTitle } from './../messages';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { rangeReducer, RANGE_ACTION } from './range-raducer';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\n/**\n * @hidden\n */\nvar useRange = function (defaultValue, args, callback) {\n var _a = React.useState(defaultValue), state = _a[0], setState = _a[1];\n var handleDispatchAction = React.useCallback(function (action) {\n var newState = rangeReducer(args.state || state, __assign({}, action, args));\n if (callback) {\n callback(newState, action.event);\n }\n setState(newState);\n }, [args, callback]);\n return [state, handleDispatchAction];\n};\n/**\n * Represents the RangeSlider component.\n */\nexport var RangeSlider = React.forwardRef(function (props, ref) {\n var _a, _b, _c, _d;\n validatePackage(packageMetadata);\n var target = React.useRef(null);\n var sliderRef = React.useRef(null);\n var sliderSelectionRef = React.useRef(null);\n var startHandle = React.useRef(null);\n var endHandle = React.useRef(null);\n var focus = React.useCallback(function () {\n if (startHandle.current) {\n startHandle.current.focus();\n }\n }, [startHandle]);\n React.useImperativeHandle(target, function () { return ({\n element: sliderRef.current,\n focus: focus,\n props: props\n }); });\n React.useImperativeHandle(ref, function () { return target.current; });\n var min = React.useMemo(function () { return props.min; }, [props.min]);\n var max = React.useMemo(function () { return props.max; }, [props.max]);\n var step = React.useMemo(function () { return props.step !== undefined ? props.step : defaultProps.step; }, [props.step, defaultProps.step]);\n var dir = useDir(sliderRef, props.dir);\n var handleChange = function (newValue, event) {\n if (props.onChange && target.current) {\n props.onChange.call(undefined, {\n value: newValue,\n target: target.current,\n syntheticEvent: event\n });\n }\n };\n var _e = React.useState(''), currentDrag = _e[0], setCurrentDrag = _e[1];\n var _f = useRange(props.defaultValue || defaultProps.defaultValue, {\n min: min,\n max: max,\n step: step,\n state: props.value\n }, handleChange), stateValue = _f[0], dispatchStateValue = _f[1];\n var value = React.useMemo(function () { return props.value || stateValue; }, [props.value, stateValue]);\n var sliderTrackRef = React.useRef(null);\n var sliderTrackWrapRef = React.useRef(null);\n var percentStart = React.useMemo(function () { return ((value.start - min) / (max - min)) * 100; }, [value.start, min, max]);\n var percentEnd = React.useMemo(function () { return ((value.end - min) / (max - min)) * 100; }, [value.end, min, max]);\n var sliderItemsStyle = React.useMemo(function () { return props.vertical ? { paddingTop: 0, height: '100%' } : {}; }, [props.vertical]);\n var trackStyles = React.useMemo(function () { return props.vertical\n ? { marginTop: '0.5rem', marginBottom: '0.5rem' }\n : { marginLeft: '0.5rem', marginRight: '0.5rem' }; }, [props.vertical]);\n var localization = useLocalization();\n var calcNewDistance = React.useCallback(function (event) {\n if (!sliderTrackWrapRef.current) {\n return;\n }\n event.originalEvent.preventDefault();\n var computed = sliderTrackWrapRef.current.getBoundingClientRect();\n var distance = props.vertical\n ? (computed.bottom - event.clientY)\n : dir === 'rtl'\n ? (computed.right - event.clientX)\n : (event.clientX - computed.left);\n var size = props.vertical ? computed.height : computed.width;\n var percentage = (distance / size);\n var payload = (min + percentage * (max - min));\n return payload;\n }, [\n sliderTrackWrapRef,\n props.vertical,\n dir,\n min,\n max,\n stateValue.start,\n stateValue.end,\n props.value && props.value.start,\n props.value && props.value.end\n ]);\n var calcKey = React.useCallback(function (payload) {\n if (payload <= value.start) {\n return 'start';\n }\n if (payload >= value.end) {\n return 'end';\n }\n return (2 * payload < value.end + value.start) ? 'start' : 'end';\n }, [\n stateValue.start, stateValue.end,\n props.value && props.value.start,\n props.value && props.value.end\n ]);\n var handleStartKeyDown = React.useCallback(function (event) {\n switch (event.keyCode) {\n case Keys.right:\n event.preventDefault();\n dispatchStateValue({ type: dir === 'rtl' ? RANGE_ACTION.decrease : RANGE_ACTION.increase, key: 'start', event: event });\n break;\n case Keys.up:\n event.preventDefault();\n dispatchStateValue({ type: RANGE_ACTION.increase, key: 'start', event: event });\n break;\n case Keys.left:\n event.preventDefault();\n dispatchStateValue({ type: dir === 'rtl' ? RANGE_ACTION.increase : RANGE_ACTION.decrease, key: 'start', event: event });\n break;\n case Keys.down:\n event.preventDefault();\n dispatchStateValue({ type: RANGE_ACTION.decrease, key: 'start', event: event });\n break;\n case Keys.home:\n event.preventDefault();\n dispatchStateValue({ type: RANGE_ACTION.min, key: 'start', event: event });\n break;\n case Keys.end:\n event.preventDefault();\n dispatchStateValue({ type: RANGE_ACTION.max, key: 'start', event: event });\n break;\n default:\n break;\n }\n }, [dispatchStateValue]);\n var handleEndKeyDown = React.useCallback(function (event) {\n switch (event.keyCode) {\n case Keys.right:\n event.preventDefault();\n dispatchStateValue({ type: dir === 'rtl' ? RANGE_ACTION.decrease : RANGE_ACTION.increase, key: 'end', event: event });\n break;\n case Keys.up:\n event.preventDefault();\n dispatchStateValue({ type: RANGE_ACTION.increase, key: 'end', event: event });\n break;\n case Keys.left:\n event.preventDefault();\n dispatchStateValue({ type: dir === 'rtl' ? RANGE_ACTION.increase : RANGE_ACTION.decrease, key: 'end', event: event });\n break;\n case Keys.down:\n event.preventDefault();\n dispatchStateValue({ type: RANGE_ACTION.decrease, key: 'end', event: event });\n break;\n case Keys.home:\n event.preventDefault();\n dispatchStateValue({ type: RANGE_ACTION.min, key: 'end', event: event });\n break;\n case Keys.end:\n event.preventDefault();\n dispatchStateValue({ type: RANGE_ACTION.max, key: 'end', event: event });\n break;\n default:\n break;\n }\n }, [dispatchStateValue, dir]);\n var handleTrackPress = React.useCallback(function (event) {\n var payload = calcNewDistance(event);\n var key = calcKey(payload);\n setCurrentDrag(key);\n key === 'end' ? endHandle.current.focus() : startHandle.current.focus();\n var action = (key === 'end' ? RANGE_ACTION.end : RANGE_ACTION.start);\n dispatchStateValue({ type: action, payload: payload, event: event });\n }, [props.vertical, min, max, dispatchStateValue]);\n var handleTrackDrag = function (event) {\n var payload = calcNewDistance(event);\n var action = currentDrag === 'end' ? RANGE_ACTION.end : RANGE_ACTION.start;\n dispatchStateValue({ type: action, payload: payload, event: event });\n };\n var handleTrackRelease = function (event) {\n var payload = calcNewDistance(event);\n var action = currentDrag === 'end' ? RANGE_ACTION.end : RANGE_ACTION.start;\n dispatchStateValue({ type: action, payload: payload, event: event });\n setCurrentDrag('');\n };\n useDraggable(sliderTrackWrapRef, { onPress: handleTrackPress, onDrag: handleTrackDrag, onRelease: handleTrackRelease });\n return (React.createElement(\"div\", { role: \"slider\", id: props.id, style: props.style, ref: sliderRef, dir: dir, className: classNames('k-widget k-slider', {\n 'k-rtl': dir === 'rtl',\n 'k-state-disabled': props.disabled,\n 'k-slider-vertical': props.vertical,\n 'k-slider-horizontal': !props.vertical\n }, props.className), \"aria-labelledby\": props.ariaLabelledBy, \"aria-describedby\": props.ariaDescribedBy },\n React.createElement(\"div\", { className: 'k-slider-wrap', style: {\n display: 'flex',\n position: 'relative',\n flexDirection: props.vertical ? 'column-reverse' : 'row'\n } },\n React.createElement(\"div\", { ref: sliderTrackWrapRef, className: \"k-slider-track-wrap\", style: __assign({ flexGrow: 1, position: 'relative', touchAction: 'none' }, trackStyles) },\n props.children && (React.createElement(\"ul\", { className: \"k-reset k-slider-items\", style: __assign({ margin: 0 }, sliderItemsStyle) }, React.Children.map(props.children, function (child) {\n return child && React.cloneElement(child, {\n position: 100 * (child.props.position - props.min) /\n (props.max - props.min),\n vertical: props.vertical\n }, child.props.children);\n }))),\n React.createElement(\"div\", { ref: sliderTrackRef, className: \"k-slider-track\", style: props.vertical\n ? { bottom: 0, height: '100%' }\n : (_a = {}, _a[dir === 'rtl' ? 'right' : 'left'] = 0, _a.width = '100%', _a) },\n (percentStart !== null && percentEnd !== null) && React.createElement(\"div\", { \"data-selection\": true, ref: sliderSelectionRef, title: value.start + \" - \" + value.end, className: \"k-slider-selection\", style: props.vertical\n ? { height: (percentEnd - percentStart) + '%', bottom: percentStart + '%' }\n : (_b = {},\n _b[dir === 'rtl' ? 'right' : 'left'] = percentStart + '%',\n _b.width = (percentEnd - percentStart) + '%',\n _b) }),\n React.createElement(\"a\", { ref: startHandle, role: \"slider\", tabIndex: getTabIndex(props.startTabIndex, props.disabled, undefined), \"aria-valuemin\": min, \"aria-valuemax\": Math.max(max, value.end), \"aria-valuenow\": value.start, \"aria-disabled\": props.disabled ? 'true' : undefined, className: \"k-draghandle\", title: localization.toLanguageString(sliderDragTitle, messages[sliderDragTitle]), style: props.vertical\n ? { bottom: 'calc(' + percentStart + '% - 8px)', zIndex: 1 }\n : (_c = {}, _c[dir === 'rtl' ? 'right' : 'left'] = 'calc(' + percentStart + '% - 8px)', _c.zIndex = 1, _c), onKeyDown: handleStartKeyDown }),\n React.createElement(\"a\", { ref: endHandle, role: \"slider\", tabIndex: getTabIndex(props.endTabIndex, props.disabled, undefined), \"aria-valuemin\": Math.min(min, value.start), \"aria-valuemax\": max, \"aria-valuenow\": value.end, \"aria-disabled\": props.disabled ? 'true' : undefined, className: \"k-draghandle\", title: localization.toLanguageString(sliderDragTitle, messages[sliderDragTitle]), style: props.vertical\n ? { bottom: 'calc(' + percentEnd + '% - 8px)', zIndex: 1 }\n : (_d = {}, _d[dir === 'rtl' ? 'right' : 'left'] = 'calc(' + percentEnd + '% - 8px)', _d.zIndex = 1, _d), onKeyDown: handleEndKeyDown }))))));\n});\nvar propTypes = {\n value: function (props, propName, componentName) {\n if (props.value) {\n var start = props.value.start;\n var end = props.value.end;\n var min = props.min;\n var max = props.max;\n if (start > end || start > max || start < min || end > max || end < min || end < start) {\n return new Error(\"Invalid prop + \" + propName + \" supplied to \" + componentName + \".\\n The { start, end } value must be between the min & max value and { start, end } must be start < end.\\n \");\n }\n }\n return null;\n },\n defaultValue: function (props, propName, componentName) {\n if (props.defaultValue) {\n var start = props.defaultValue.start;\n var end = props.defaultValue.end;\n var min = props.min;\n var max = props.max;\n if (start > end || start > max || start < min || end > max || end < min || end < start) {\n return new Error(\"Invalid prop + \" + propName + \" supplied to \" + componentName + \".\\n The { start, end } value must be between the min & max value and { start, end } must be start < end.\\n \");\n }\n }\n return null;\n },\n onChange: PropTypes.func,\n step: PropTypes.number,\n min: function (props, propName, componentName) {\n var prop = props[propName];\n var min = props.min;\n var max = props.max;\n if (min === undefined) {\n return new Error(\"Invalid prop + \" + propName + \" supplied to \" + componentName + \".\\n \" + propName + \" value can not be undefined.\\n \");\n }\n if (prop && min >= max) {\n return new Error(\"Invalid prop + \" + propName + \" supplied to \" + componentName + \".\\n \" + propName + \" value can not be equal to or bigger than the max value.\\n \");\n }\n return null;\n },\n max: function (props, propName, componentName) {\n var prop = props[propName];\n var min = props.min;\n var max = props.max;\n if (max === undefined) {\n return new Error(\"Invalid prop + \" + propName + \" supplied to \" + componentName + \".\\n \" + propName + \" value can not be undefined.\\n \");\n }\n if (prop && max <= min) {\n return new Error(\"Invalid prop + \" + propName + \" supplied to \" + componentName + \".\\n \" + propName + \" value can not be equal to or smaller than the min value.\\n \");\n }\n return null;\n },\n vertical: PropTypes.bool,\n disabled: PropTypes.bool,\n dir: PropTypes.oneOf(['ltr', 'rtl'])\n};\nvar defaultProps = {\n step: 1,\n defaultValue: {\n start: 0,\n end: 0\n },\n vertical: false,\n disabled: false\n};\nRangeSlider.displayName = 'KendoReactRangeSlider';\n// TODO: delete casting when @types/react is updated!\nRangeSlider.propTypes = propTypes;\nRangeSlider.defaultProps = defaultProps;\n","var __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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, guid, noop, Keys, dispatchEvent, getTabIndex } from '@progress/kendo-react-common';\nimport { provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, switchValidation } from './../messages';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nvar SWITCH_CONTAINER = 'k-switch-container';\nvar SWITCH_HANDLE = 'k-switch-handle';\nvar SWITCH_LABEL_ON = 'k-switch-label-on';\nvar SWITCH_LABEL_OFF = 'k-switch-label-off';\n/**\n * Represents the [KendoReact Switch component]({% slug overview_switch%}).\n */\nvar Switch = /** @class */ (function (_super) {\n __extends(Switch, _super);\n /**\n * @hidden\n */\n function Switch(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.setValidity = function () {\n if (_this._input && _this._input.setCustomValidity) {\n _this._input.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage ||\n _this.defaultValidationMessage.toLanguageString(switchValidation, messages[switchValidation]));\n }\n };\n _this.limit = function (offset, drag, wrapper) {\n var wrapperWidth = wrapper.offsetWidth;\n var margin = drag.offsetWidth;\n if (offset < 0) {\n return 0;\n }\n else if (offset > wrapperWidth - margin) {\n return wrapperWidth - margin;\n }\n return offset;\n };\n _this.toggle = function (value, event) {\n _this.setState({ checked: value });\n _this.valueDuringOnChange = value;\n dispatchEvent(_this.props.onChange, event, _this, { value: value });\n _this.valueDuringOnChange = undefined;\n };\n _this._id = guid();\n _this.defaultValidationMessage = provideLocalizationService(_this);\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._element) {\n _this._element.focus();\n }\n };\n _this.dummyInput = function (value) {\n /* Dummy component to support forms */\n return (React.createElement(\"input\", { type: \"checkbox\", checked: _this.props.checked, ref: function (el) {\n _this._input = el;\n }, tabIndex: -1, \"aria-hidden\": true, value: value, style: { opacity: 0, width: 1, border: 0, zIndex: -1, position: 'absolute', left: '50%' }, onChange: noop }));\n };\n _this.handleClick = function (event) {\n if (_this.eventTimeStamp === event.timeStamp) {\n // This is guard against the case when wrapped in label, click event is emmited twice\n return;\n }\n _this.eventTimeStamp = event.timeStamp;\n _this.toggle(!_this.value, event);\n };\n _this.handleKeyDown = function (event) {\n if (_this.props.disabled) {\n return;\n }\n var keyCode = event.keyCode;\n if (keyCode === Keys.space || keyCode === Keys.enter) {\n _this.toggle(!_this.value, event);\n }\n };\n _this.handleWrapperFocus = function (event) {\n if (_this.props.disabled) {\n return;\n }\n _this.setState({ focused: true });\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus.call(undefined, event);\n }\n };\n _this.handleWrapperBlur = function (event) {\n if (_this.props.disabled) {\n return;\n }\n _this.setState({ focused: false });\n var onBlur = _this.props.onBlur;\n if (onBlur) {\n onBlur.call(undefined, event);\n }\n };\n validatePackage(packageMetadata);\n _this.state = {\n checked: props.defaultChecked || Switch.defaultProps.defaultChecked,\n focused: false\n };\n return _this;\n }\n Object.defineProperty(Switch.prototype, \"value\", {\n /**\n * Gets the value of the Switch.\n */\n get: function () {\n return this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.checked !== undefined\n ? this.props.checked\n : this.state.checked;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Switch.prototype, \"element\", {\n get: function () {\n return this._element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Switch.prototype, \"actionElement\", {\n /**\n * @hidden\n */\n get: function () {\n return this._wrapper;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Switch.prototype, \"name\", {\n /**\n * Gets the `name` property of the Switch.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Switch.prototype, \"validity\", {\n /**\n * Represents the validity state into which the Switch is set.\n */\n get: function () {\n var customError = this.props.validationMessage !== undefined;\n var isValid = this.props.valid !== undefined ?\n this.props.valid :\n !this.props.required ?\n true :\n this.value ? true : false;\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Switch.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : Switch.defaultProps.validityStyles;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Switch.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : Switch.defaultProps.required;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n Switch.prototype.componentDidMount = function () {\n this.setValidity();\n // Due to dynamic dir calculation\n this.forceUpdate();\n };\n /**\n * @hidden\n */\n Switch.prototype.componentDidUpdate = function () {\n this.setValidity();\n };\n /**\n * @hidden\n */\n Switch.prototype.render = function () {\n var _this = this;\n var focused = this.state.focused;\n var _a = this.props, dir = _a.dir, disabled = _a.disabled, id = _a.id, offLabel = _a.offLabel, onLabel = _a.onLabel, tabIndex = _a.tabIndex;\n this.dir = dir || (this._wrapper && getComputedStyle(this._wrapper).direction) || undefined;\n var isValid = !this.validityStyles || this.validity.valid;\n var switchClassName = classNames({\n 'k-widget': true,\n 'k-switch': true,\n 'k-switch-on': this.value,\n 'k-switch-off': !this.value,\n 'k-state-focused': focused,\n 'k-state-disabled': disabled,\n 'k-state-invalid': !isValid\n }, this.props.className);\n var ariaAttributes = {\n 'aria-checked': this.value,\n 'aria-disabled': disabled || undefined\n };\n return (React.createElement(\"span\", { ref: function (span) {\n _this._wrapper = span;\n }, className: switchClassName, dir: this.dir, onKeyDown: this.handleKeyDown, onClick: this.handleClick, onBlur: this.handleWrapperBlur, onFocus: this.handleWrapperFocus },\n React.createElement(\"span\", __assign({ className: SWITCH_CONTAINER, id: id || this._id, role: 'switch' }, ariaAttributes, { \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, ref: function (span) {\n _this._element = span;\n }, tabIndex: getTabIndex(tabIndex, disabled, undefined), accessKey: this.props.accessKey }),\n this.dummyInput(this.value),\n React.createElement(\"span\", { className: SWITCH_LABEL_ON }, onLabel),\n React.createElement(\"span\", { className: SWITCH_LABEL_OFF }, offLabel),\n React.createElement(\"span\", { className: SWITCH_HANDLE }))));\n };\n /**\n * @hidden\n */\n Switch.propTypes = {\n accessKey: PropTypes.string,\n checked: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n defaultChecked: PropTypes.bool,\n dir: PropTypes.string,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n offLabel: PropTypes.string,\n required: PropTypes.bool,\n tabIndex: PropTypes.number,\n valid: PropTypes.bool,\n validate: PropTypes.bool,\n validationMessage: PropTypes.string,\n onBlur: PropTypes.any,\n onChange: PropTypes.any,\n onFocus: PropTypes.any,\n onLabel: PropTypes.string\n };\n /**\n * @hidden\n */\n Switch.defaultProps = {\n disabled: false,\n defaultChecked: false,\n offLabel: 'OFF',\n onBlur: noop,\n onFocus: noop,\n onLabel: 'ON',\n required: false,\n validityStyles: true\n };\n return Switch;\n}(React.Component));\nexport { Switch };\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Keys, classNames, guid, useDir, getTabIndex, dispatchEvent } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { useLocalization } from '@progress/kendo-react-intl';\nimport { messages, checkboxValidation, checkboxOptionalText } from './../messages';\n/**\n * Represents the [KendoReact Checkbox component]({% slug overview_checkbox %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return ;\n * }\n * }\n * ReactDOM.render(, document.querySelector('my-app'));\n * ```\n */\nexport var Checkbox = React.forwardRef(function (props, target) {\n validatePackage(packageMetadata);\n var _a = props, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, checked = _a.checked, className = _a.className, children = _a.children, defaultChecked = _a.defaultChecked, disabled = _a.disabled, defaultValue = _a.defaultValue, id = _a.id, label = _a.label, labelPlacement = _a.labelPlacement, name = _a.name, labelOptional = _a.labelOptional, onChange = _a.onChange, onFocus = _a.onFocus, onBlur = _a.onBlur, tabIndex = _a.tabIndex, value = _a.value, required = _a.required, valid = _a.valid, validationMessage = _a.validationMessage, validityStyles = _a.validityStyles, \n // Removed to support direct use in Form Field component\n visited = _a.visited, touched = _a.touched, modified = _a.modified, others = __rest(_a, [\"ariaDescribedBy\", \"ariaLabelledBy\", \"checked\", \"className\", \"children\", \"defaultChecked\", \"disabled\", \"defaultValue\", \"id\", \"label\", \"labelPlacement\", \"name\", \"labelOptional\", \"onChange\", \"onFocus\", \"onBlur\", \"tabIndex\", \"value\", \"required\", \"valid\", \"validationMessage\", \"validityStyles\", \"visited\", \"touched\", \"modified\"]);\n var elementRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n var getImperativeHandle = React.useCallback(function () { return ({\n element: elementRef.current,\n focus: focusElement,\n get name() { return elementRef.current && elementRef.current.name; }\n }); }, [focusElement]);\n React.useImperativeHandle(target, getImperativeHandle);\n var _b = React.useState(defaultChecked), stateChecked = _b[0], setStateChecked = _b[1];\n var _c = React.useState(defaultValue), stateValue = _c[0], setStateValue = _c[1];\n var valueIsBoolean = (typeof value === 'boolean' || value === null);\n var isCheckedControlled = checked !== undefined;\n var isValueControlled = valueIsBoolean;\n var currentValue = isValueControlled ? value : stateValue;\n var currentChecked = isCheckedControlled ? checked : isValueControlled ? undefined : stateChecked;\n var useValueAsChecked = currentChecked === undefined && currentValue;\n var checkedProp = useValueAsChecked ? currentValue : currentChecked;\n var valueProp = (useValueAsChecked || isValueControlled) ? (value === null ? value : undefined) : value || currentValue;\n var indeterminateProp = checkedProp === null || valueProp === null;\n var calculatedId = React.useMemo(function () { return guid(); }, []);\n var localizationService = useLocalization();\n var localizeMessage = function (message) {\n return localizationService.toLanguageString(message, messages[message]);\n };\n var defaultValidationMessage = localizeMessage(checkboxValidation);\n var optionalMessage = localizeMessage(checkboxOptionalText);\n var isValid = valid !== undefined ?\n valid :\n !required ?\n true :\n currentChecked ? true : false;\n React.useEffect(function () {\n if (elementRef.current && elementRef.current.setCustomValidity) {\n elementRef.current.setCustomValidity(isValid\n ? ''\n : (validationMessage || defaultValidationMessage));\n }\n }, [isValid, validationMessage, defaultValidationMessage]);\n var setValue = React.useCallback(function (e, val) {\n if (!isValueControlled && !disabled) {\n setStateValue(val);\n if (!isCheckedControlled && !disabled) {\n setStateChecked(val);\n }\n }\n if (onChange && !disabled) {\n dispatchEvent(onChange, e, __assign({}, getImperativeHandle(), { value: val }), { value: val });\n }\n }, [isCheckedControlled, disabled, onChange, isValueControlled, getImperativeHandle]);\n var handleChange = React.useCallback(function (e) {\n var newValue = e.target.checked;\n setValue(e, newValue);\n }, [setValue, value]);\n var handleKeyDown = React.useCallback(function (e) {\n if (disabled) {\n return;\n }\n var keyCode = e.keyCode;\n var currentVal = e.currentTarget.checked;\n if (keyCode === Keys.space) {\n e.preventDefault();\n e.stopPropagation();\n setValue(e, !currentVal);\n }\n }, [disabled, setValue]);\n var handleKeyUp = React.useCallback(function (e) {\n if (disabled) {\n return;\n }\n var keyCode = e.keyCode;\n if (keyCode === Keys.space) {\n e.preventDefault();\n }\n }, [disabled]);\n var handleFocus = React.useCallback(function (e) {\n if (onFocus && !disabled) {\n dispatchEvent(onFocus, e, getImperativeHandle(), undefined);\n }\n }, [onFocus, disabled, getImperativeHandle]);\n var handleBlur = React.useCallback(function (e) {\n if (onBlur && !disabled) {\n dispatchEvent(onBlur, e, getImperativeHandle(), undefined);\n }\n }, [onBlur, disabled, getImperativeHandle]);\n var dir = useDir(elementRef, props.dir);\n var checkboxClasses = classNames({ 'k-state-disabled': disabled }, className);\n var inputProps = __assign({ type: 'checkbox', className: classNames({\n 'k-checkbox': true,\n 'k-state-indeterminate': indeterminateProp,\n 'k-state-invalid k-invalid': !(isValid || validityStyles !== undefined || validityStyles === true)\n }), ref: elementRef, name: name, id: id || calculatedId, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, checked: Boolean(checkedProp), disabled: disabled, tabIndex: getTabIndex(tabIndex, disabled), role: 'checkbox', required: required !== undefined ? required : false, 'aria-checked': currentChecked || checkedProp ?\n true :\n indeterminateProp ?\n 'mixed' :\n false, 'aria-disabled': disabled || undefined }, others, { onChange: handleChange, onKeyDown: handleKeyDown, onKeyUp: handleKeyUp, onFocus: handleFocus, onBlur: handleBlur });\n var checkboxInput = (React.createElement(React.Fragment, null, \n // removing value prop is required due to bug in react where\n // value set to undefined override default submit value\n valueProp === undefined ? (React.createElement(\"input\", __assign({}, inputProps))) : (React.createElement(\"input\", __assign({}, inputProps, { value: valueIsBoolean ? undefined : valueProp === null ? '' : valueProp })))));\n var checkboxLabel = (React.createElement(React.Fragment, null, label !== undefined ? (React.createElement(\"label\", { className: 'k-checkbox-label', htmlFor: id || calculatedId, style: { userSelect: 'none' } },\n label,\n labelOptional && React.createElement(\"span\", { className: \"k-label-optional\" }, optionalMessage))) : null));\n return (React.createElement(React.Fragment, null, (labelPlacement === 'before') ? (React.createElement(\"span\", { className: checkboxClasses, dir: 'rtl' },\n checkboxInput,\n checkboxLabel,\n children)) : (React.createElement(\"span\", { className: checkboxClasses, dir: dir },\n checkboxInput,\n checkboxLabel,\n children))));\n});\nCheckbox.propTypes = {\n checked: PropTypes.bool,\n className: PropTypes.string,\n defaultChecked: PropTypes.bool,\n defaultValue: PropTypes.any,\n dir: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n label: PropTypes.any,\n labelPlacement: PropTypes.string,\n labelOptional: PropTypes.bool,\n name: PropTypes.string,\n tabIndex: PropTypes.number,\n value: PropTypes.any,\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n};\nCheckbox.displayName = 'KendoCheckbox';\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { guid, classNames, dispatchEvent, getTabIndex } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nexport var RadioButton = React.forwardRef(function (props, target) {\n validatePackage(packageMetadata);\n var ariaDescribedBy = props.ariaDescribedBy, checked = props.checked, children = props.children, className = props.className, disabled = props.disabled, id = props.id, label = props.label, labelPlacement = props.labelPlacement, name = props.name, style = props.style, tabIndex = props.tabIndex, value = props.value, valid = props.valid, onChange = props.onChange, onFocus = props.onFocus, onBlur = props.onBlur, others = __rest(props, [\"ariaDescribedBy\", \"checked\", \"children\", \"className\", \"disabled\", \"id\", \"label\", \"labelPlacement\", \"name\", \"style\", \"tabIndex\", \"value\", \"valid\", \"onChange\", \"onFocus\", \"onBlur\"]);\n var elementRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n elementRef.current.focus();\n }\n }, []);\n var getImperativeHandle = React.useCallback(function () { return ({\n element: elementRef.current,\n focus: focusElement\n }); }, [focusElement]);\n React.useImperativeHandle(target, getImperativeHandle);\n var calculatedId = React.useMemo(function () { return guid(); }, []);\n var handleChange = React.useCallback(function (event) {\n dispatchEvent(onChange, event, getImperativeHandle(), { value: value });\n }, [onChange, value, disabled]);\n var handleFocus = React.useCallback(function (event) {\n if (onFocus && !disabled) {\n dispatchEvent(onFocus, event, getImperativeHandle(), undefined);\n }\n }, [onFocus, disabled]);\n var handleBlur = React.useCallback(function (event) {\n if (onBlur && !disabled) {\n dispatchEvent(onBlur, event, getImperativeHandle(), undefined);\n }\n }, [onBlur, disabled]);\n var inputProps = __assign({ type: 'radio', id: id || calculatedId, name: name, className: classNames({\n 'k-radio': true,\n 'k-state-invalid': valid === false,\n 'k-invalid': valid === false\n }, className), ref: elementRef, disabled: disabled, tabIndex: getTabIndex(tabIndex, disabled), checked: checked, style: style, 'aria-describedby': ariaDescribedBy, value: value, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur }, others);\n var radioButtonLabel = (React.createElement(React.Fragment, null, label !== undefined ? (React.createElement(\"label\", { className: 'k-radio-label', htmlFor: id || calculatedId, style: { userSelect: 'none' }, \"aria-label\": label }, label)) : null));\n var radio = React.createElement(\"input\", __assign({}, inputProps));\n return (labelPlacement === 'before'\n ? (React.createElement(React.Fragment, null,\n radioButtonLabel,\n radio,\n children)) : (React.createElement(React.Fragment, null,\n radio,\n radioButtonLabel,\n children)));\n});\nRadioButton.propTypes = {\n ariaDescribedBy: PropTypes.string,\n checked: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n id: PropTypes.string,\n label: PropTypes.string,\n labelPlacement: PropTypes.string,\n name: PropTypes.string,\n style: PropTypes.object,\n tabIndex: PropTypes.number,\n value: PropTypes.any,\n valid: PropTypes.bool,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n};\nRadioButton.displayName = 'KendoRadioButton';\n","var __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};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { RadioButton } from './RadioButton';\nimport { useRtl, guid, classNames, focusFirstFocusableChild, dispatchEvent } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nexport var RadioGroup = React.forwardRef(function (props, target) {\n validatePackage(packageMetadata);\n var ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, className = props.className, data = props.data, defaultValue = props.defaultValue, disabled = props.disabled, name = props.name, labelPlacement = props.labelPlacement, layout = props.layout, style = props.style, value = props.value, valid = props.valid, _a = props.item, Item = _a === void 0 ? defaultProps.item : _a, onChange = props.onChange, onFocus = props.onFocus;\n var elementRef = React.useRef(null);\n var focusElement = React.useCallback(function () {\n if (elementRef.current) {\n focusFirstFocusableChild(elementRef.current);\n }\n }, []);\n var getImperativeHandle = React.useCallback(function () { return ({\n element: elementRef.current,\n focus: focusElement\n }); }, [focusElement]);\n React.useImperativeHandle(target, getImperativeHandle);\n var _b = React.useState(defaultValue), stateChecked = _b[0], setStateChecked = _b[1];\n var isControlled = value !== undefined;\n var checkedRadioValue = isControlled ? value : stateChecked;\n var handleChange = React.useCallback(function (event) {\n var currentValue = event.value;\n if (!isControlled && !disabled) {\n setStateChecked(currentValue);\n }\n if (onChange && !disabled) {\n dispatchEvent(onChange, event.syntheticEvent, getImperativeHandle(), { value: currentValue });\n }\n }, [setStateChecked, onChange, disabled]);\n var handleFocus = React.useCallback(function (event) {\n if (onFocus && !disabled) {\n dispatchEvent(onFocus, event.syntheticEvent, getImperativeHandle(), undefined);\n }\n }, [onFocus, disabled]);\n var radioGroupName = React.useMemo(function () { return guid(); }, []);\n var radioGroupClasses = classNames('k-radio-list', {\n 'k-list-horizontal': layout === 'horizontal',\n 'k-list-vertical': layout === 'vertical' || layout === undefined\n }, className);\n var dir = useRtl(elementRef, props.dir);\n var radioOptions = (data && data.map(function (option, index) {\n var isCurrentlyChecked = checkedRadioValue === option.value;\n var noOptionChecked = checkedRadioValue === null || checkedRadioValue === undefined;\n var radioButtonProps = __assign({}, option, { valid: valid, checked: isCurrentlyChecked, disabled: (option.disabled || disabled) ? true : false, labelPlacement: option.labelPlacement ? option.labelPlacement : labelPlacement, tabIndex: option.tabIndex\n ? option.tabIndex\n : (noOptionChecked && index === 0) || isCurrentlyChecked\n ? 0\n : -1, index: index, name: name || radioGroupName, onChange: handleChange, onFocus: handleFocus });\n return (React.createElement(Item, { className: classNames('k-radio-item', { 'k-state-disabled': radioButtonProps.disabled || disabled }), key: index, role: 'radio' },\n React.createElement(RadioButton, __assign({}, radioButtonProps))));\n }));\n return (React.createElement(\"ul\", { role: \"radiogroup\", className: radioGroupClasses, ref: elementRef, dir: dir, style: style, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, radioOptions));\n});\nvar defaultProps = {\n item: function (props) { return React.createElement(\"li\", __assign({}, props)); }\n};\nRadioGroup.propTypes = {\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n className: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.object),\n defaultValue: PropTypes.any,\n dir: PropTypes.string,\n disabled: PropTypes.bool,\n labelPlacement: PropTypes.string,\n layout: PropTypes.string,\n name: PropTypes.string,\n style: PropTypes.object,\n value: PropTypes.any,\n onChange: PropTypes.func,\n onFocus: PropTypes.func\n};\nRadioGroup.defaultProps = defaultProps;\nRadioGroup.displayName = 'KendoRadioGroup';\n","var __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 __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { guid, classNames, getTabIndex, dispatchEvent, useDir } from '@progress/kendo-react-common';\n/**\n * Represents the [KendoReact TextArea component]({% slug overview_textarea %}).\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * render() {\n * return